consul的基本介绍就不多说,官方文档肯定比我说的好,英语渣渣就不献丑了。这里只分享consul集群部署和使用过程中的步骤和遇到的坑。(本文有很多抄袭的地方,但是忘了从哪里copy的了,都是记在我的onenote上的。。。。。如果有作者看见,请联系我,我加上链接,非常感谢)
先来一张官网的图震贴,consul里面都是叫agent,但是区分server模式和client模式
我的理解,server作为服务注册的中心服务器,而client只是作为支撑(感觉更多的是分摊server端的压力,因为官方建议是在每台应用服务器上装一个client),不保存任何数据和状态,用完就废弃
server端建议最少3个节点,当然你也可以直接单点跑(你也可以在生产环境用dev模式跑,反正挂了不要来找我就行)
8500 端口基于HTTP协议,用于API接口或WEB UI访问
8600 端口作为DNS服务器,使我们可以通过节点名查询节点信息
8400 端口rpc通讯???
TCP/UDP/8301 端口用于单个数据中心所有节点之间的互相通讯,即对 LAN 池(包含位于同一局域网或数据中心上的节点)信息的同步。它使得整个数据中心能够自动发现服务器地址,分布式检测节点故障,事件广播(如领导选举事件)。
TCP/UDP/8302 端口用于单个或多个数据中心之间的服务器节点的信息同步,即对 WAN 池(只包含 server 的 WAN Gossip 池,这些服务器主要位于不同的数据中心,通常通过互联网或广域网进行通信。)信息的同步。它针对互联网的高延迟进行了优化,能够实现跨数据中心请求。
TCP/8300 端口用于服务器节点。client端通过该端口 RPC 协议调用server端节点。
本文的命令都是用的docker原生命令,没有采用docker-compose文件启动的形式,所以有些命令可能会非常长,我会对用到的参数做详细解释
假设有3台服务器:
172.16.0.123
172.16.0.124
172.16.0.125