1、etcd介紹
etcd是Google公司使用Go語言開發的開源、高可用的分布式key-value存儲系統,可以用於配置共享和服務的注冊和發現。
類似項目有zookeeper以及consul
etcd具有以下特點:
- 完全復制:集群中的每個節點都可以使用完整的存檔
- 高可用性:Etcd可用於避免硬件的單點故障或網絡問題
- 一致性:每次讀取都會返回跨多主機的最新寫入
- 簡單:包括一個定義良好、面向用戶的API(gRPC)
- 快速:每秒10000次寫入的基准速度
- 可靠:使用Raft算法實現強一致性、高可用服務存儲目錄
2、etcd使用場景
2.1、配置中心
將一些配置信息放到etcd上進行集中管理。
這類場景方式通常是這樣的:應用在啟動到時候主動從etcd獲取一次配置信息,同時在etcd節點上注冊一個Watcher並等待,以后每次配置有更新的時候,etcd都會實時通知訂閱者,以此達到獲取最新配置信息的目的。
2.2、分布式鎖
因為etcd使用Raft算法保持了數據的強一致性,其次操作存儲到集群中的值必然是全局一致的,所以很容易實現分布式鎖,鎖服務有兩種使用方式,一時保持獨占,二是控制時序。
