一、什么是consul?
站在用户的角度思考问题,与客户深入沟通,找到大兴网站设计与大兴网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广、空间域名、雅安服务器托管、企业邮箱。业务覆盖大兴地区。Consul是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,是由HashiCorp公司用Go语言开发的,基于Mozilla Public License 2.0的协议开源的。具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器可无缝配合。
与Consul同类的产品有:Zookeeper、Doozer、Etcd。
二、特性
1.服务注册:通过HTTP API或DNS,告诉服务注册中心有新的服务加入。
2.服务发现:通过HTTP API或DNS,可以知道目标服务的地址和端口。
3.健康检查:支持多种方式,HTTP、TCP、Docker、Shell脚本定制化监控。
4.配置模板:Consul Template负责定期从服务注册中心获取信息,如果有变化自动更新配置文件并重新加载。
5.可视化Web界面
6.支持多数据中心
补充:
什么是服务注册?
答:一个服务将其位置信息在“中心注册节点”注册的过程。该服务一般会将它的主机IP地址以及端口号进行注册,有时也会有服务访问的认证信息,使用协议,版本号,以及关于环境的一些细节信息。
什么是服务发现?
答:服务发现可以让一个应用或者组件发现其运行环境以及其他应用或组件的信息。用户配置一个服务发现工具就可以将实际容器跟运行配置分离开。常见配置信息包括:ip、端口号、名称等。
三、应用场景
1.docker、CoreOS实例的注册于配置共享
2.Vitess集群
3.SaaS应用的配置共享
4.与confd服务集成,动态生成nginx与haproxy配置文件
四、优势
1.使用Raft算法来保持一致性,比paxos算法更直接,zookeeper采用的是paxos算法
2.支持多数据中心,内外网的服务采用不同的端口进行监听,可以避免单点故障;zookeeper等不支持多数据中心
3.支持健康监测
4.支持http协议与dns协议接口
5.提供web界面
五、系统架构
这是Consul官网提供的一个典型的系统结构图。
Consul建议每个DataCenter的Server的节点最好在3-5个,主要是方便在失败以及数据复制的性能;Client的数量是任意的。
DataCenter的所有节点都会参与到Gossip协议;Client到Server会通过LAN Gossip。所有的节点都在Gossip pool中,通过消息层来实现节点之间的通信以达到故障检测的目的,并且不需要给Client配置Server的地址。
Server节点还会参与到WAN Gossip池中,通过Server节点就可以让DataCenter之间做简单的服务发现。比如增加一个Datacenter就只需要让Server节点参与到Gossip Pool中。并且,DataCneter之间的通信和服务请求就可以通过WAN Gossip 来随机请求另外一个DataCenter的Server节点,然后被请求的Server 会再把请求foword到本DataCenter的leader节点。
Server leader的选举是通过Consul的Raft算法实现的,leader节点需要负责所有的请求和处理,并且这些请求必须复制给所有的其他非leader的server节点。非leader节点接收到RPC请求的时候也会forward到leader节点。
注:关于leader的详细选举流程可以参考Raft算法,有时间可以研究下Raft算法与Paxos算法。
六、安装与部署Console
详情请看下一篇推文。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。