美文网首页
Spring Cloud 与Consul集群发布

Spring Cloud 与Consul集群发布

作者: 天生小包 | 来源:发表于2022-07-19 15:44 被阅读0次

    一、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资源的路径,该目录必须是可读的

    相关文章

      网友评论

          本文标题:Spring Cloud 与Consul集群发布

          本文链接:https://www.haomeiwen.com/subject/caxsirtx.html