Consul学习
Consul是一个全功能的服务网格解决方案,解决了操作微服务和云基础设施的网络和安全挑战。Consul提供了一种软件驱动的路由和分段方法。它还带来了额外的好处,如故障处理、重试和网络可观察性。这些功能中的每一个都可以根据需要单独使用,也可以一起使用,建立一个完整的服务网格。 Consul是一个分布式系统,旨在运行在一个节点集群上。一个节点可以是一个物理服务器、云实例、虚拟机或容器。连接在一起的Consul运行的节点集被称为数据中心。在数据中心内,Consul可以以服务器或客户端两种模式运行。服务器代理维护Consul的一致状态。客户端是一个轻量级的进程,运行在每个运行服务的节点上。一个数据中心将有3-5个服务器和许多客户端。 安装 Consul Consul 的安装就不多介绍了, 具体可以看看官网的教程 。 运行 Consul 由于我采用了本地安装的方式,我将以开发模式运行 Consul , 在实际生产中不要使用这种方法运行部署. 通过 consul agent -dev 在开发模式下启动 Consul 代理。 可以看到 consul 代理已经顺利启动。 通过 consul members 命令可以查看你的 consul 列表。 输出显示代理、它的 IP 地址、它的健康状态、它在数据中心中的角色以及一些版本信息。您可以通过提供-详细标志来发现其他元数据。 通过 members 命令查询的结果可能跟实际不太一样,通过 HTTP API 可以查询准确的结果 curl localhost:8500/v1/catalog/nodes。 使用命令 consul leave 可以停止 consul 代理。 注册服务 接下来介绍在 consul 注册一个服务。 Consul的主要功能之一是服务发现。Consul提供了一个DNS接口,下游服务可以用它来寻找其上游依赖的IP地址。 Consul知道这些服务的位置,因为每个服务都在其本地Consul客户端注册。操作员可以手动注册服务,配置管理工具可以在部署服务时注册服务,或者容器编排平台可以通过集成自动注册服务。 接下来我将通过配置文件手动注册服务。 新建配置文件目录 mkdir ./consul.d 新建一个服务定义文件 echo '{ "service": { "name": "web", "tags": [ "rails" ], "port": 80 } }' > ./consul.d/web.json 现在重新启动代理,使用命令行标志来指定配置目录,并在代理上启用脚本检查。 consul agent -dev -enable-script-checks -config-dir=./consul.d ...