注册中心设计与实践
注册中心负责维护分布式系统中,服务与其地址之间的映射关系。
可选方案
ZooKeeper
ZooKeeper是一个专业的分布系统协调器。包括一套文件系统和通知机制。常用的实现用途包括:
- 节点选主
- 配置管理(配置中心)
- 粗粒度分布式锁
- 主备高可用切换
- 服务注册、服务发现
ZooKeeper在分布式系统中属于CP模型,通过大量的事务操作保证数据的一致性。但注册发现需要的是AP模型,对数据的一直性要求不强,但需要高可用。
注册中心需要毫秒级的健康检查写请求,由于ZooKeeper通过两阶段提交的事务操作效率上负担不了大规模注册集群。
Erueka
Netfix开源的微服务注册中心,属于AP模型。目前开源项目中比较合适的注册发现产品。
etcd
CP模型,通过Raft算法保证数据的一致性。
Consul
CP模型,通过Raft算法保证数据一致性,通过Gossip算法解决自身的发现问题,能过处理网络分区问题。
需求设计
- 注册中心本质上需要的是AP模型
- 跨语言
- 通过执行控制集群服务
- 节点健康监控,服务分组等
组件设计
自研注册管理平台包括三个部分:
- 注册中心,提供数据交互、指令下发等(Service)
- 管理平台端与控制中心通信(jar)
- 服务方插件,用于微服务自动注册、服务发现、接受指令(jar)
结构设计上,业务逻辑层不应该调用业务逻辑层,数据应该一路向下。
(未完成)