一、Consul集群部署
下载地址: https://www.consul.io/downloads
在三台linux主机上分别上传并解压consul安装包,并启动对应的注册中心。
注意: 需要把100、101、102主机防火墙关闭或者打开对应的端又。
1.1、192.168.1.100
$ cd /home/
$ mkdir /domain
# 上传consul安装包到/home/domain
$ unzip consul_1.12.3_linux_amd64.zip
$ ./consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=server-1 -bind=192.168.1.100 -datacenter=ijep -ui - client=0.0.0.0 &
# 集群状态查看
$ consul operator raft list-peers
# 查看成员信息
$ consul members
1.2、192.168.1.101
$ cd /home/
$ mkdir /domain
# 上传consul安装包到/home/domain
$ unzip consul_1.12.3_linux_amd64.zip
$ ./consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=server-2 -bind=192.168.1.101 -datacenter=ijep -ui - client=0.0.0.0 &
# 将当前服务和100主机组成集群服务
$ ./consul join 192.168.1.100
# 集群状态查看
$ ./consul operator raft list-peers
# 查看成员信息
$ ./consul members
1.3、192.168.1.102
$ cd /home/
$ mkdir /domain
# 上传consul安装包到/home/domain
$ unzip consul_1.12.3_linux_amd64.zip
$ ./consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=server-3 -bind=192.168.1.102 -datacenter=ijep -ui - client=0.0.0.0 &
# 将当前服务和100主机组成集群服务
$ ./consul join 192.168.1.100
# 集群状态查看
$ consul operator raft list-peers
# 查看成员信息
$ consul members
1.4、控制台查看集群 http://192.168.1.100:8500/ui/
image.png查看集群节点效果是一样的
image.png
二、应用集群部署
2.1、需要先部署Consul Client
Server:有数量限制,主要用于服务查找;
Client:可以部署无限多,没有限制;
$ cd /home/
$ mkdir /domain
# 上传consul安装包到/home/domain
$ unzip consul_1.12.3_linux_amd64.zip
$ ./consul agent -client=0.0.0.0 -data-dir /Users/houyinke/project/work/server/consul_data/consul.d -datacenter=ijep -bind=172.22.90.33 -node=client-2 -enable-script-checks=true
# 将当前服务和100主机组成集群服务
$ ./consul join 192.168.1.100
# 集群状态查看
$ consul operator raft list-peers
# 查看成员信息
$ consul members
2.2、应用集群配置请采用以下配置,服务中网关、系统服务、工作流、演示服务均采用一下配 置,配置多节点consul。
cloud:
consul: #consul注册中心
# 单机配置
#host: localhost
#port: 8500
# 集群配置,配置Client客户端IP
host: 172.22.82.66
prot: 8500
service-name: ijep-service-priv
health-check-path: /actuator/health
health-check-interval: 1s
heartbeat: # 开启心跳监测
enabled: true
ip-address: 192.168.1.123 # 当前微服务ip
prefer-ip-address: true # 开启ip地址注册
instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}
三、参数详解
-advertise: 通知展现地址用来改变我们给集群中的其他节点展现的地址,默认情况下- bind地址就是展现地址,然而也存在一些路由地址是不能受约束的,这时候会激活一个不同的 地址来供应,如果这个地址不能路由,这个路由将不能被加入集群
-bootstrap:用来控制一个server是否在bootstrap模式,在一个datacenter中只能有 一个server处于bootstrap模式,当一个server处于bootstrap模式时,可以自己选举为 raft leader,在一个节点的模式下这种方式很重要,否则在集群中的一致性不能保证,不推 荐在集群中应用这个标识
-bootstrap-expect:在一个datacenter中期望提供的server节点数目,当该值提供的时 候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和 bootstrap公用(推荐使用的方式)
-bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是 0.0.0.0,这意味着Consulo会使用第一个可用的私有IP地址,Consul可以使用TCP和UDP并 且可以使用共同的端口,如果存在防火墙,这两者协议必须是允许的。
-client:consul绑定在哪个client地址上,这个地址提供HTTP、DNS、RPC等服务,默认 是127.0.0.1,只允许回路连接。RPC地址用于Consul命令,比如Consul members可以查 询当前运行的Consul代理
-config-file:明确的指定要加载哪个配置文件,文件下的所有配置会合并在一起进行加载 -config-dir:配置文件目录,里面所有以.json结尾的文件都会被加载
-data-dir:提供一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录 必须是稳定的,系统重启后都继续存在
-dc:该标记控制agent运行的datacenter的名称,默认是dc1 -encrypt:指定secret key,使consul在通讯时进行加密,key可以通过consul keygen生成,同一个集群中的节点必须使用相同的key
-http-port:HTTP API侦听端口,默认端口8500,可以在环境变量中进行设置,非常有用, 可以用于与Consul进行通讯
-join:加入一个已经启动的agent的ip地址,可以多次指定多个agent的地址。如果consul 不能加入任何指定的地址中,则agent会启动失败,默认agent启动时不会加入任何节点。
-retry-join:和join类似,但是允许你在第一次失败后进行尝试。 -retry-interval:两次join之间的时间间隔,默认是30s -retry-max:尝试重复join的次数,默认是0,也就是无限次尝试
-log-level:consul agent启动后显示的日志信息级别。默认是info,可选:trace、 debug、info、warn、err。跟踪 调试 详情 警告 错误,可以通过Consul monitor使用 任何级别,也可以通过重启加载新的配置级别
-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名(代表一 个机器)
-pid-file:提供一个路径来存放pid文件,可以使用该文件进行SIGINT/SIGHUP(关闭/更 新)agent
-protocol:consul使用的协议版本 consul -v -rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。
-server:定义agent运行在server模式还是Client模式,提供时即为Server端,每个集 群至少有一个server并且每台机器上不要超过5个dataceter.所有服务器采用一致性算法 Raft保证数据一致,确保在故障的情况下的可用性。
-syslog:开启系统日志功能,只在linux/osx上生效 -ui-dir: 提供存放web ui资源的路径,该目录必须是可读的
网友评论