分布式中的Dubbo 和 Zookeeper
Dubbo是什么?为什么我们要用Dubbo
1.Dubbo是什么?
Apache Dubbo 是一个高性能,轻量级,基于Java的RPC框架。Dubbo提供三个关键功能,包括基于接的远程调用,容错和负载平衡以及自动服务注册和发现。
2.Dubbo功能分析
3.调用功能职责
服务容器负责启动,加载,运行服务提供者。
服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者在启动时,向注册中心订阅自己所需的服务。
注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于连接推送变更数据给消费者。
服务消费者,从提供者地址列表,基于软负载均衡算法,选择一台提供者进行调用,如果调用失败,再选另一台调用。
软负载均衡区分与硬负载均衡(例如F5硬负载均衡器),是一种基于软件实现的负载均衡(例如:ngnix)
服务消费者和提供者,在内存中的累计调用次数和调用时间,定时每分钟发一次统计数据到监控中心。
map(调用id,times) map(调用id,int),防止于集装箱进行汇总再上报到注册中心。
Zookeeper是什么?
1.Zookeeper是什么?
Zookeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务
2.Zookeeper在Dubbo中的主要功能
当提供者出现断电等异常停机时,注册中心能自动删除提供者的信息。
当提供者出现断电等异常停机时,注册中心能自动删除提供者信息。
当注册中心重启时,能自动恢复注册数据,以及订阅请求。
当会话过期时,能自动恢复注册数据,以及订阅请求。
当设置<dubbo:registry check=“false”>时,记录失败注册和订阅请求,后台定时重试。