DUBBO是一个分布式服务架构,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架。
>>实现数据跨系统的调用(如使用dubbo),必须实现序列化接口,serializable
架构 图。
使用Dubbo进行远程调用实现服务交互,它支持并封装多种协议,因此只需要在配置中指定使用的协议即可,保证了服务提供方和服务消费方之间的透明。
Dubbo的客户端和服务端有三种连接方式,分别是:广播,直连,和使用zookeeper注册中心。
直连方式:一般在开发环境中使用,生产环境很少使用。
服务端配置:注册中心地址:N/A
<!-- 配置dubbo -->
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="xxx-service" />
<dubbo:registry address="N/A" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="xxx.TestService"
ref="testServiceImpl" />
客户端配置:从指定的url中获取服务
<!-- 配置dubbo服务 -->
<dubbo:application name="xxx-web" />
<!-- 声明要调用的服务,timeout是设置连接超时最长时间,如果不设置,默认一秒超时,重试3次 -->
<dubbo:reference interface="xxx.TestService"
id="testService" timeout="1000000" url="dubbo://127.0.0.1:20880"/>
Dubbo注册中心方式:
服务端配置:使用zookeeper注册中心
<!-- 配置dubbo -->
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="xxx-service" />
<dubbo:registry protocol="zookeeper" address="192.168.37.161:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="xxx.TestService"
ref="testServiceImpl" />
客户端配置:指定zookeeper注册中心
<!-- 配置dubbo服务 -->
<dubbo:application name="xxx-web" />
<!-- 使用zookeeper注册中心 -->
<dubbo:registry protocol="zookeeper" address="192.168.37.161:2181" />
<!-- 声明要调用的服务,timeout是设置连接超时最长时间,如果不设置,默认一秒超时,重试3次 -->
<dubbo:reference interface="xxx.TestService"
id="testService" timeout="1000000" />
Dubbo的Monitor监控中心
待续……