(原创)大话微服务之微服务治理框架和DevOps工具-Consul

今天和大家来分享一款微服务治理工具-Consul。Consul是大名鼎鼎的Hashicorp公司开发的,Zookeeper、Etcd、Consul目前是业界三大服务治理工具,成三足鼎立之势。三者各有各的特点。这里就不一一说明三者的优缺,仅仅分析consul的优势:

(原创)大话微服务之微服务治理框架和DevOps工具-Consul

1.封装了服务发现的api,开发调用非常简单

2.提供了健康检查功能

3.使用了raft算法保证了一致性,比复杂的paxos算法更直接,相比而言,zk采用的是paxos,二etcd采用的是raft

4.支持多数据中心,保证多机房使用。

5.支持 http 和 dns 协议接口.,zookeeper 的集成较为复杂,,etcd 只支持 http 协议

6.官方提供web管理界面, etcd 无此功能

7.唯一一款跨数据中心,其它几款都不支持跨数据中心

下面是Consul的架构图:

agent

组成 consul 集群的每个成员上都要运行一个 agent,可以通过 consul agent 命令来启动。agent 可以运行在 server 状态或者 client 状态。自然的,运行在 server 状态的节点被称为 server 节点;运行在 client 状态的节点被称为 client 节点。

client 节点

负责转发所有的 RPC 到 server 节点。本身无状态,且轻量级,因此,可以部署大量的 client 节点。

server 节点

负责组成 cluster 的复杂工作(选举、状态维护、转发请求到 lead),以及 consul 提供的服务(响应 RCP 请求)。考虑到容错和收敛,一般部署 3 ~ 5 个比较合适。

datacenter

多机房使用的数据共享

网上关于Consul单机和集群部署的例子很多,这里分享在在Windows平台下的简化部署方法并设置开机自动启动、避免不停的敲入一行行难记的命令:

Consul简化部署说明

部署Consul(只适用版本0.7)(Windows 64位服务器)时使用

1、 解压工具,把这三个文件放在和Consul同一个目录下,

(原创)大话微服务之微服务治理框架和DevOps工具-Consul

里面有个批处理文件 ,修改里面的IP为服务器的内网IP(这个通过批处理也可以获取,但是不同环境,比如有多个网卡的服务器,或者有Wifi环境的笔记本会获取多个,为了稳定起见,这里还是建议手工录入)

2、 三个脚本都修改完后,依次启动每台机器上的srvanyui.exe工具,配置如下:

点确定后,会提示是否启动该服务,点“是”,在工具会看到新建的服务:

(原创)大话微服务之微服务治理框架和DevOps工具-Consul

这样,不管机器如何重启,只要机器能成功启动,这个Consul节点就会自动加载到集群中去

通过打开cmd,可以看到所有节点状态:

(原创)大话微服务之微服务治理框架和DevOps工具-Consul

简要说明:

1、先用srvanyui将consul安装成windows服务,路径选择批处理的路径

3、加入集群的IP,所有安装机器的加入到同一个IP总(consul join -rpc-addr=%ip%:8400 10.175.173.81)

4、加入集群后,查看命令后面要加rpc-addr=10.175.173.81:8400 http-addr=10.175.175.163:8500

查看成员:

consul members -rpc-addr=10.175.173.81:8400

consul members -http-addr=10.175.175.163:8500

查看信息:

consul info -rpc-addr=10.175.173.81:8400

consul info -http-addr=10.175.175.163:8500

查看版本:consul –v


分享到:


相關文章: