基于consul高可用

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 关于consul高可用的分享

1.介绍consul

Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对.
命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品.
一致性协议采用 Raft 算法,用来保证服务的高可用. 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制.

2.consul优势

2.1 使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接
2.2 支持多数据中心
2.3 支持健康检查
2.4 支持http和dns协议封口
2.5 官方提供web管理界面
2.6 部署简单,运维友好
相比同类的服务发现与配置的主流的产品,我个人更看好的功能是DNS API,并且提供简单的web管理界面。

3.consul的使用场景

3.1 docker 实例的注册与配置共享
3.2 coreos 实例的注册与配置共享
3.3 redis &MySQL 高可用的实现
3.4 与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件

4. 基于consul redis高可用

screenshot
首先部署一个3节点的consul server 集群,用于提供主要服务。
其次redis主从服务部署,consul client 并且注册服务,并提供读域名和写域名。
最后 APP应用服务的DNS解析指向consul server 节点,通过consul dns解析 获得后端的redis master和slave的ip地址。
当故障发生,redis的主从切换时。consul会自动做DNS和域名的对应关系。

5.基于consul MySQL高可用

基本于redis的高可用类似,需要MHA高可用做配合,proxysql做读写分离。不过不再需要MHA的vip,只需要使用MHA的补binlog日志功能。

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

#可以参考下percona博客分享

6.关于consul dns缓存问题

consul dns缓存可以设置为 有缓存状态和无缓存状态。默认TTL值是0。可调整有缓存的参数是 dns_config.node_ttl。建议使用默认的无缓存状态。

7.结束语

关于 consul 1.0 如何具体实现server搭建和实现redis的高可用 参考我的好基友言伟同学的博客。目前网上流传的都是consul 老的版本,感谢言伟同学的分享。也请关注知数堂分享的新姿势。

http://412166174.blog.51cto.com/3102369/1975822
http://412166174.blog.51cto.com/3102369/1976520
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
消息中间件 负载均衡 调度
Docker swarm实现基于Consul和Haproxy的RabbitMQ高可用集群
基于Consul服务发现和Haproxy实现的RabbitMQ高可用的负载均衡集群
|
6月前
|
Linux
06SpringCloud - Consul高可用及搭建步骤
06SpringCloud - Consul高可用及搭建步骤
24 0
|
应用服务中间件 数据中心 nginx
基于Nginx和Consul构建高可用及自动发现的Docker服务架构
本文讲的是基于Nginx和Consul构建高可用及自动发现的Docker服务架构【编者的话】本文对于Docker和Consul Template以及Nginx如何结合使用做了较为详细的介绍。
4728 0
|
6月前
|
存储 安全 Go
Golang 语言微服务的服务注册与发现组件 Consul
Golang 语言微服务的服务注册与发现组件 Consul
57 0