基于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高可用

首先部署一个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
基于consul高可用的更多相关文章
- 实现基于Keepalived高可用集群网站架构的多种方法
实现基于Keepalived高可用集群网站架构 随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展,后端节点已 ...
- 基于mycat高可用方案——数据库负载
引言 传统企业级应用一般采取单台数据库,吞吐所有应用的读写,随着互联网的高速发展,以及微服务架构越来越普及,往往采用分库分表来支撑高速增长的大量业务数据吞吐.分库分表主要有两种方式:水平分表和垂直分库 ...
- hadoop-2.7.1基于QMJ高可用安装配置
1.修改主机名及hosts文件 10.205.22.185 nn1 (主)作用namenode,resourcemanager,datanode,JournalNode,zk,zkfc(hive,sq ...
- 基于Keepalived高可用集群的MariaDB读写分离机制实现
一 MariaDB读写分离机制 在实现读写分离机制之前先理解一下三种主从复制方式:1.异步复制:MariaDB默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库 ...
- 基于DNS(Consul)高可用
DNS 推荐从Bind-DLZ入手,资料多可控制度更好(查询DNS记录SQL可定制)据说性能差 Bind-DLZhttps://www.cnblogs.com/saneri/p/8178065.htm ...
- MySQL MGR+ Consul之数据库高可用方案
背景说明: 基于目前存在很多MySQL数据库单点故障,传统的MHA,PXC等方案用VIP或者DNS切换的方式可以实现.基于数据库的数据强一致性考虑,采用MGR集群,采用consul服务注册发现 ...
- 项目实战3—实现基于Keepalived+LVS的高可用集群网站架构
实现基于Keepalived高可用集群网站架构 环境:随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展,后端 ...
- 理解 OpenStack 高可用(HA) (6): MySQL HA
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- mysql高可用方案总结性说明
MySQL的各种高可用方案,大多是基于以下几种基础来部署的(也可参考:Mysql优化系列(0)--总结性梳理 该文后面有提到)1)基于主从复制:2)基于Galera协议(PXC):3)基于NDB引 ...
随机推荐
- iOS证书申请及使用详细说明
iOS 证书申请和使用详解(详细版)阅读 对于iOS开发者来说,apple开发者账号肯定不会陌生.在开发中我们离不开它.下面我简单的为大家分享一下关于iOS开发中所用的证书相关知识. 第一部分:成 ...
- 《Java编程思想》读书笔记-基本规范、注释、static关键字、import关键字
扫一扫加我的微信公众号,和我一起打好Java的基础 本文作为构建第一个Java程序的番外篇二,主要跟大家伙儿从浅层次的探讨下Java中的关键字import和static,此外为了让我们的代码可读性更强 ...
- 一种hyperscan API使用(1)
hyperscan: 编译和安装:http://www.cnblogs.com/zzqcn/p/4900643.html 简单介绍:http://www.cnblogs.com/zzqcn/p/489 ...
- Window 下载Android系统源代码
第一步:使用命令下载manifest文件夹 git clone https://aosp.tuna.tsinghua.edu.cn/ 第二步:进入文件夹,打开default.xml文件并找到自己要下载 ...
- @NotNull和@NotEmpty和@NotBlank 区别
1.@NotNull:不能为null,但可以为empty:用在基本类型上. 2.@NotEmpty:不能为null,而且长度必须大于0:用在集合类上面. 3.@NotBlank:只能作用在String ...
- CF867E: Buy Low Sell High(贪心, STL) (hdu6438)
Description 有nn个城市,第ii个城市商品价格为aiai,从11城市出发依次经过这nn个城市到达n n城市,在每个城市可以把手头商品出售也可以至多买一个商品,问最大收益. Input 第 ...
- angular6 引用echart第一次数据不显示解决
1 使用promise从后台返回数据后,页面还是比数据更快的加载出来,导致echart图页面加载的时候不显示问题 1.1 html <div echarts [options]="do ...
- leetcode 刷题(1)--- 两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...
- PTA——找鞍点
PTA 7-56 找鞍点 #include<stdio.h> #define N 6 int main() { ; scanf("%d",&n); int a[ ...
- 安装Mosquitto学习MOTT协议
1.源码的获取:http://mosquitto.org/files/source/ 2.直接解压tar文件,就可以得到所有的源码,里面有个配置文件config.mk,这个文件包含了Mosquitto ...