目录
Dubbo是什么?
是一种高性能、轻量级、基于Java的RPC框架。Dubbo提供三个关键功能,包括基于接口的远程调用、容错和负载平衡以及服务自动注册和发现。
Dubbo组成?
- 生产者 (生产者暴露远程服务)
- 消费者 (消费者调用远程服务)
- 注册中心(服务的发现于配置)
- 监控中心(服务的调用次数与耗时)
- 容器 (管理服务的生命周期)
服务的联系
- 容器负责发布、加载、运行一个生产者服务
- 生产者在启动时注册其服务
- 消费者在启动时从注册中心订阅他需要的服务
- 注册中心返回消费者订阅的服务列表,当数据改变通过长链接推送
- 消费者基于软负载均衡算法选择生产者调用,如果失败,调用另一个
- 生产者和消费者都会在内存中计算服务调用数量和耗时,并将结果每分钟发到监控中心
Dubbo特性:连接性、健壮性、可扩展性和可升级性。
使用
- spring配置本地服务 local.xml
<bean id=“xxxService” class=“com.xxx.XxxServiceImpl” />
<bean id=“xxxAction” class=“com.xxx.XxxAction”>
<property name=“xxxService” ref=“xxxService” />
</bean>
- spring配置远程服务 remote-provide.xml 、remote-consumer.xml
<!-- define remote service bean the same way as local service bean -->
<bean id=“xxxService” class=“com.xxx.XxxServiceImpl” />
<!-- expose the remote service -->
<dubbo:service interface=“com.xxx.XxxService” ref=“xxxService” />
<!-- reference the remote service -->
<dubbo:reference id=“xxxService” interface=“com.xxx.XxxService” />
<!-- use remote service the same say as local service -->
<bean id=“xxxAction” class=“com.xxx.XxxAction”>
<property name=“xxxService” ref=“xxxService” />
</bean>
Dubbo学习--基于zk使用dubbo远程调用服务(二)