The RMI protocol uses the JDK standard java.rmi.*
Implementation, using a block short connection and JDK standard serialization.
Serializable
interface-Dsun.rmi.transport.tcp.responseTimeout=3000
,see the RMI configuration belowdubbo.service.protocol=rmi
java -Dsun.rmi.transport.tcp.responseTimeout=3000
more RMI options please check JDK Document
If the service interface implement the java.rmi.Remote
interface, it can interoperate with the native RMI, ie:
If the service interface doesn’t implement the java.rmi.Remote
interface:
com.xxx.XxxService$Remote
interface and implement the java.rmi.Remote
interface, expose the service as this interface,<dubbo: protocol name = 'rmi' codec = 'spring' />
is set, the$Remote
interface will not be generated, but Spring’s RmiInvocationHandler
interface will be used to expose services.configure RMI protocol:
<dubbo:protocol name="rmi" port="1099" />
configure provider level default protocol:
<dubbo:provider protocol="rmi" />
configure service level default protocol:
<dubbo:service protocol="rmi" />
configure multiple port:
<dubbo:protocol id="rmi1" name="rmi" port="1099" />
<dubbo:protocol id="rmi2" name="rmi" port="2099" />
<dubbo:service protocol="rmi1" />
Compatible with Spring:
<dubbo:protocol name="rmi" codec="spring" />