一、diamond简介
diamond是淘宝内部使用的一个管理持久配置的系统。为应用系统提供获取配置的服务,应用不仅可以启动时从diamond获取相关配置,而且可以在运行中对配置数据的变化进行感知并获取变化后的配置数据。
二、diamond架构图
三、diamond核心原理
1. diamond-server集群的数据同步
- diamond-server写数据时,先写入MySQL数据库,然后再写入本地缓存文件,写完后发送HTTP请求给集群中其它diamond-server,其它diamond-server收到请求后,从MySQL数据库中读取刚刚写入的数据至本地文件。
- diamond-server启动后会启动一个定时任务,定时从MySQL中拉取所有数据至本地文件。
2. diamond-client获取diamond-server地址
- diamond-client需要绑定域名服务器(地址服务器),域名服务器上有一个静态文件存储这diamond服务器的地址列表,客户端启动时,根据自身的域名绑定,连接到域名服务器,取回diamond-server服务器的地址列表,从中随机选择一台diamond服务器进行连接。
- diamond-client启动后会启动一个定时