当前位置:首页 > Web开发 > 正文

但最好提供一个

2024-03-31 Web开发

1.consul是什么?

Consul是HashiCorp公司推出的开源工具,用于实现漫衍式系统的处事发明与配置。 Consul是漫衍式的、高可用的、可横向扩展的。它具备以下特性 :
       service discovery:consul通过DNS或者HTTP接口使处事注册和处事发明变的很容易,一些外部处事,例如saas供给的也可以一样注册。
       health checking:健康检测使consul可以快速的告警在集群中的操纵。和处事发明的集成,可以防备处事转发到故障的处事上面。
       key/value storage:一个用来存储动态配置的系统。供给简单的HTTP接口,可以在任何处所操纵。
       multi-datacenter:无需庞大的配置,即可撑持任意数量的区域。

2.为什么要使用consul处事发明?

因为一套微处事架构中有很多个处事需要打点,也就是说会有很多对grpc。如果一一对应的进行打点会很繁琐所以我们需要有一个打点发明的机制。

        

处事1~4把当前本身的网络位置注册随处事发明模块,处事发明就以K-V的方法记录下,K一般是处事名,V就是IP:PORT。处事发明模块按时的轮询检察这些处事能不能访谒的了(这就是健康查抄)。客户端在挪用处事1~4的时候,就跑去处事发明模块问下它们的网络位置,然后再挪用它们的处事。客户端完全不需要记录这些处事网络位置,客户端和处事端完全解耦!

3.consul的安置

  (1)进入consul官网找到本身开发平台对应的安置包下载 https://www.consul.io/downloads.html

           或者   wget https://releases.hashicorp.com/consul/1.5.1/consul_1.5.1_linux_amd64.zip

  (2)下载完后,解压,得到一个可执行文件consul

  (3)将这个文件移动到全局变量环境中

           $ sudo mv consul /usr/local/bin/

  (4)验证是否安置告成

           $ consul

4.consul说明

(1)consul角色
   client: 客户端, 无状态, 将 HTTP 和 DNS 接口请求转发给局域网内的处事端集群.
   server: 处事端, 生存配置信息, 高可用集群, 在局域网内与本地客户端通讯, 通过广域网与其他数据中心通讯. 每个数据中心的         server 数量保举为 3 个或是 5 个。
(2)运行 consul代办代理
    consul是范例的 C/S架构,可以运行处事模式或客户模式。每一个数据中心必需有至少一个处事节点, 3到5个服)务节点最好。非      常不建议只运行一个处事节点,因为在节点掉效的情况下数据有极大的丢掉危害。
(3)运行Agent
     完成Consul的安置后,必需运行agent。agent可以运行为server或client模式.每个数据中心至少必需拥有一台server。建议在一      个集群中有3或者5个server。部署单一的server,在呈现掉败时会不成制止的造成数据丢掉。其他的agent运行为client模式。一    个client是一个非常轻量级的进程。用于注册处事,运行健康查抄和转发对server的盘问。agent必需在集群中的每个主机上运行。

5.启动consul server和client

   PS:一共三个节点,两个节点作为处事器,,一个作为客户端。三个节点地点分袂为:

          106.14.125.167        (云1)

          129.28.80.79          (云2)

          106.12.77.99          (云3)

node1:运行cosnul agent以server模式

     首先在node1节点的/etc目录下创建consul.d目录,然后打开终端输入下面的命令:

consul agent -server -ui -bootstrap-expect=2 -data-dir=http://www.mamicode.com/tmp/consul -node=n1 -config-dir /etc/consul.d -advertise=106.14.125.167 -bind=0.0.0.0 -client=0.0.0.0

参数说明:
     -server : 界说agent运行在server模式
     -bootstrap-expect :在一个datacenter中期望供给的server节点数目,当该值供给的时候,consul一直等到到达指定sever数目的时候才会引导整个集群,该符号不能和bootstrap共用
     -data-dir:供给一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录必需是不变的,系统重启后都继续存在
     -node:节点在集群中的名称,在一个集群中必需是独一的,默认是该节点的主机名
     -bind::指明节点的IP地点,一般是0.0.0.0或者云处事器内网地点,不能写阿里云外网地点。这是Consul侦听的地点,它必                   须可以被集群中的所有其他节点访谒。虽然绑定地点不是绝对须要的,但最好供给一个。
     -ui: 启动web界面
     -config-dir::配置文件目录,里面所有以.json结尾的文件城市被加载
     -rejoin:使consul忽略先前的分开,在再次启动后仿照照旧测验考试插手集群中。
     -client:consul处事侦听地点,这个地点供给HTTP、DNS、RPC等处事,默认是127.0.0.1所以不同错误外供给处事,如果你要对外供给处事改成0.0.0.0

node2:运行cosnul agent以server模式

  切换到node2机器上,打开终端输入下面的命令:

consul agent -server -ui -bootstrap-expect=2 -data-dir=http://www.mamicode.com/tmp/consul -node=n2 -advertise=129.28.80.79 -bind=0.0.0.0 -client=0.0.0.0 -join 106.14.125.167

node3:运行cosnul agent以client模式

  切换到node3机器上,首先在/etc目录下创建consul.d目录,然后打开终端输入下面的命令:

consul agent -data-dir=http://www.mamicode.com/tmp/consul -node=n3 -advertise=106.12.77.99 -bind=0.0.0.0 -client=0.0.0.0 -join 106.14.125.167

6.在终端中检察集群成员

   新开一个终端窗口运行consul members, 你可以看到Consul集群的成员:

      

7.遏制Agent
   你可以使用Ctrl-C 优雅的封锁Agent。中断Agent之后你可以看到他分开了集群并封锁。
   在退出中,Consul提醒其他集群成员,这个节点分开了.如果你强行杀失进程.集群的其他成员应该能检测到这个节点掉效了。当一个成员分开,他的处事和检测也会从目录中移除。当一个成员掉效了,他的健康状况被简单的符号为危险,但是不会从目录中移除。Consul会自动测验考试对掉效的节点进行重连.允许他从某些网络条件下恢复过来.分开的节点则不会再继续联系。
   别的,如果一个agent作为一个处事器,一个优雅的分开是很重要的,可以制止引起潜在的可用性故障影响达成一致性协议。
       $ consul leave

      

 8.注册处事
————————————————
版权声明:本文为CSDN博主「suxuefeng123」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文来由链接及本声明。
原文链接:https://blog.csdn.net/junaozun/article/details/90699384

consul(转https://blog.csdn.net/junaozun/article/details/90699384)

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32452.html