1.前言
上一章描述了现有系统架构的模式和改造方向,本章节主要描述改造的基本方案和相关问题描述。
2.改造方案
基本流程:
1) 服务提供者B启动到Zookeeper服务器处进行注册;
2) 服务消费者A启动时,请求Zookeeper服务器获取最新的B服务存活列表,并保存到本地缓存中;
3)A请求B服务器时,根据缓存中的B服务器列表,随机选取一个进行请求。
服务变动:
1) 当B出现异常或人工关闭不能提供服务时,Zookeeper服务器某个节点会探测到B节点的变化,更新本节点B服务器列表;
2) Zookeeper内部节点进行数据同步;
3) 服务消费者A监听到B服务列表的变化,更新本地缓存。
自动重发机制:
B服务挂掉到A缓存更新大约需要3-5s的时间(根据网络环境不同还需仔细测试)。为了保证服务的实时可用,A请求B发生异常时,需要根据服务消费报错信息,处理特定异常进行自动重发。
3. 存在风险和问题
1) 服务发现速度慢的问题,上述描述服务延迟问题。
2) Zookeeper 作为服务发现存在的问题
在分布式系统领域有个著名的CAP定理(C-数据一致性;A-服务可用性;P-服务对网络分区故障的容错性,这三个特性在任何分布式系统中不能同时满足,最多同时满足两个ÿ