基於consul高可用

1.介紹consul

Consul 是一個支持多數據中心分佈式高可用的服務發現和配置共享的服務軟件,由 HashiCorp 公司用 Go 語言開發, 基於 Mozilla Public License 2.0 的協議進行開源. Consul 支持健康檢查,並容許 HTTP 和 DNS 協議調用 API 存儲鍵值對.
命令行超級好用的虛擬機管理軟件 vgrant 也是 HashiCorp 公司開發的產品.
一致性協議採用 Raft 算法,用來保證服務的高可用. 使用 GOSSIP 協議管理成員和廣播消息, 而且支持 ACL 訪問控制.node

2.consul優點

2.1 使用 Raft 算法來保證一致性, 比複雜的 Paxos 算法更直接
2.2 支持多數據中心
2.3 支持健康檢查
2.4 支持http和dns協議封口
2.5 官方提供web管理界面
2.6 部署簡單,運維友好
相比同類的服務發現與配置的主流的產品,我我的更看好的功能是DNS API,而且提供簡單的web管理界面。mysql

3.consul的使用場景

3.1 docker 實例的註冊與配置共享
3.2 coreos 實例的註冊與配置共享
3.3 redis &MySQL 高可用的實現
3.4 與 confd 服務集成,動態生成 nginx 和 haproxy 配置文件nginx

4. 基於consul redis高可用

screenshot
首先部署一個3節點的consul server 集羣,用於提供主要服務。
其次redis主從服務部署,consul client 而且註冊服務,並提供讀域名和寫域名。
最後 APP應用服務的DNS解析指向consul server 節點,經過consul dns解析 得到後端的redis master和slave的ip地址。
當故障發生,redis的主從切換時。consul會自動作DNS和域名的對應關係。web

5.基於consul MySQL高可用

基本於redis的高可用相似,須要MHA高可用作配合,proxysql作讀寫分離。不過再也不須要MHA的vip,只須要使用MHA的補binlog日誌功能。redis

https://www.percona.com/blog/2016/09/16/consul-proxysql-mysql-ha/

#能夠參考下percona博客分享算法

6.關於consul dns緩存問題

consul dns緩存能夠設置爲 有緩存狀態和無緩存狀態。默認TTL值是0。可調整有緩存的參數是 dns_config.node_ttl。建議使用默認的無緩存狀態。sql

7.結束語

關於 consul 1.0 如何具體實現server搭建和實現redis的高可用 參考個人好基友言偉同窗的博客。目前網上流傳的都是consul 老的版本,感謝言偉同窗的分享。也請關注知數堂分享的新姿式。docker

http://412166174.blog.51cto.com/3102369/1975822 http://412166174.blog.51cto.com/3102369/1976520
相關文章
相關標籤/搜索