基于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
相关文章
相关标签/搜索