Dubbo

什么是dubbo?

 

 为什么要服务化?
将应用拆分,并抽取出核心服务来解决上述问题,还要考虑负载均衡、服务监控、高可用性、服务隔离与降级、路由策略、完善的容错机制、序列化方案的选择、通信框架的选择、开发人员对底层细节无感知、服务升级兼容性等问题。
 
 
 
 
调用关系说明:
0 服务容器负责启动,加载,运行服务提供者。
1. 服务提供者在启动时,向注册中心注册自己提供的服务。
2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
 
 
 
 

 

 

 
Dubbo提供的注册中心有如下几种类型可供选择:
  • Multicast注册中心
  • Zookeeper注册中心
  • Redis注册中心
  • Simple注册中心
 
远程通信与信息交换:
  • Mina
  • Netty
  • Grizzly
 
Dubbo支持多种协议,如下所示:
  • Dubbo协议
  • Hessian协议
  • HTTP协议
  • RMI协议
  • WebService协议
  • Thrift协议
  • Memcached协议
  • Redis协议
 容错方式:
  • failfast
  • failover
  • failback
  • failsafe

failfast--失败立即报错,对于响应快速的读操作选择failover—重试其它服务器,如果调用方无法容忍因为服务调用的阻塞也可以选择failfast,对于消息通知可以选择failback---失败定时重发,对于审计日志可以选择failsafe—失败直接忽略

 

dubbo默认变量表

服务提供者能实现失效踢出是什么原理?
服务失效踢出基于zookeeper的临时节点原理。
服务上线怎么不影响旧版本?
采用多版本开发,不影响旧版本。

 
 

posted on 2018-08-22 16:41  xiaowater  阅读(112)  评论(0)    收藏  举报

导航