架构设计
Diamond架构由三部分组成:ConfigServer、DataServer和MySql存储,如下图所示:
ConfigServer:管理DataServer集群,将客户端与DataServer集群解耦,上下线、扩容对客户端不感知;
DataServer:提供配置的持久化管理、动态推送等服务;
MySql存储:配置数据的持久化存储,采用一主两备的部署方式保障数据的安全;
Write流程
DataServer接受到写请求后,首先将配置数据持久化到DB,然后将配置数据变更事件异步广播到集群所有机器,包括自己在内,如下图所示:
注意:主备切换期间,写服务不可用;
Read流程
高可靠性:完善的容灾机制
- DB主备容灾,Master挂掉后自动切换到备库,继续提供读写服务;
- DB主备全部挂掉后,通过服务端本地缓存,仍可提供读服务;