Dubbo (与Zookeeper结合)

Dubbo介绍:
  Dubbo是针对分布式服务架构以及流动计算架构势问题的一个服务治理系统。
Dubbo特点:
  采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。
  使用rpc协议进行远程调用,直接使用socket通信。传输效率高,并且可以统计出系统之间的调用关系、调用次数,传输的数据为2进制,效率更高。
Dubbo+zookeeper+SOA架构:
  当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。
  zookeeper是Dubbo服务的注册中心,provider提供服务后注册在zookeeper上, consumer可以接口和版本信息从zookeeper中获取相应的服务,服务对于consumer来说完全透明,根本感知不到该接口是来自本地和provider,就像引用本地的一个bean一样。
工作流程:
  1,服务提供者启动时向/dubbo/com.foo.BarService/providers目录下写入URL
  2,服务消费者启动时订阅/dubbo/com.foo.BarService/providers目录下的URL向/dubbo/com.foo.BarService/consumers目录下写入自己的URL
  3,监控中心启动时订阅/dubbo/com.foo.BarService目录下的所有提供者和消费者URL
支持以下功能:
  1,当提供者出现断电等异常停机时,注册中心能自动删除提供者信息。
  2,当注册中心重启时,能自动恢复注册数据,以及订阅请求。
  3,当会话过期时,能自动恢复注册数据,以及订阅请求。
  4,当设置<dubbo:registry check="false" />时,记录失败注册和订阅请求,后台定时重试。
  5,可通过<dubbo:registry username="admin" password="1234" />设置zookeeper登录信息。
  6,可通过<dubbo:registry group="dubbo" />设置zookeeper的根节点,不设置将使用无根树。
  7,支持*号通配符<dubbo:reference group="*" version="*" />,可订阅服务的所有分组和所有版本的提供者。
调用关系说明:
 
  0,服务容器负责启动,加载,运行服务提供者。
  1,服务提供者在启动时,向注册中心注册自己提供的服务。
  2,服务消费者在启动时,向注册中心订阅自己所需的服务。
  3,注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  4,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  5,服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
 
posted @ 2018-04-12 19:25  H+  阅读(338)  评论(0编辑  收藏  举报