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的临时节点原理。
服务上线怎么不影响旧版本?
采用多版本开发,不影响旧版本。
浙公网安备 33010602011771号