运行代理
其他节点以 客户端 模式运行。客户端 进程非常轻量级,只负责 注册服务 ,运行 健康检查 以及 转发查询 。集群内每个节点均需要运行 客户端 模式 代理 。
更多数据中心部署细节,请查看文档 deployment-guide 。
快速起见,我们以 开发 ( development )模式启动 代理 ,这个模式可快速拉起一个单节点的 Consul 环境。千万不要在生产环境中使用该模式,因为数据没有持久化 。
可以看到, Consul 已经启动并输出一些日志信息。从日志可知, 代理 以 服务器 模式运行,并作为集群领袖。注意到,当前节点被标记为健康,并成为集群唯一节点。
命令输出集群节点信息,包括 地址 、 健康状态 、 节点角色 以及一些 版本信息 。如果指定 参数,还可以看到额外的 元数据 。
指令输出基于 gossip协议 ,只保证 最终一致 ( eventually consistent )。换句话讲,不管何时,当前 代理 所见可能并不是集群的全貌。如果需要 强一致 ( strongly consistent )的结果,可用使用 HTTP 接口进行查询(请求将转发至服务器):
除了 HTTP 接口,还可以使用 DNS 接口查询节点信息。注意,你需要将 DNS 查询指到 Consul 代理的 DNS 服务器,默认跑在 8600 端口。
DNS 记录格式(如 ),将在 详细介绍。
优雅退出 要求 Consul 在退出前先通知集群其他节点。如果 强杀 代理进程,集群其他节点将检测到该节点 故障 。集群成员退出,其服务以及健康检查任务将从目录中移除。集群成员故障,其健康状态将被标记为 严重错误 ,但不会从目录中移除。Consul 将自动重连故障节点,以应对网络波动,但不会重连已退出的节点。
如果 代理 为 服务器 模式,优雅退出则更为重要——避免影响 共识协议 而导致服务中断。更多关于安全添加和删除服务节点,请查考文档 advanced-operations/servers 。
下一节,开始介绍: 。
订阅更新,获取更多学习资料,请关注我们的 微信公众号 :