Consul 集群1
2023-03-20 15:35:07 时间
前言
Consul 是一个服务发现和配置工具
它有如下功能和特性:
- 服务发现
- 健康检查
- 健值存储
- 分布式且多数据中心
Consul 的作用类似于 Zookeeper 或 etcd ,和 etcd 一样也是使用 Go 实现的,也是使用的 Raft 算法
Consul 的架构
Docker Swarm 中使用 Consul 来进行服务发现,这里简单分享一下 Consul 集群相关的基础操作,详细内容可以参考 官方文档
Tip: 当前的最新版本为 Consul 0.6.4
概要
发现机制
当一个Consul代理启动后,它并不知道其它节点的存在,它是一个孤立的 单节点集群,如果想感知到其它节点的存在,它必须加入到一个现存的集群,要加入到一个现存的集群,它只用加入集群中任意一个现存的成员,当加入一个现存的成员后,会通过成员间的通讯很快发现集群中的其它成员,一个Consul代理可以加入任意一个代理,而不仅仅是服务节点
构建集群
启动首个节点
[root@h104 ~]# consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=a1 -bind=192.168.100.104 -config-dir /etc/consul.d
==> WARNING: BootstrapExpect Mode is specified as 1; this is the same as Bootstrap mode.
==> WARNING: Bootstrap mode enabled! Do not enable unless necessary
==> Starting Consul agent...
==> Starting Consul agent RPC...
==> Consul agent running!
Node name: 'a1'
Datacenter: 'dc1'
Server: true (bootstrap: true)
Client Addr: 127.0.0.1 (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400)
Cluster Addr: 192.168.100.104 (LAN: 8301, WAN: 8302)
Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false
Atlas: <disabled>
==> Log data will now stream in as it occurs:
2016/03/18 21:22:31 [INFO] raft: Node at 192.168.100.104:8300 [Follower] entering Follower state
2016/03/18 21:22:31 [INFO] serf: EventMemberJoin: a1 192.168.100.104
2016/03/18 21:22:31 [INFO] serf: EventMemberJoin: a1.dc1 192.168.100.104
2016/03/18 21:22:31 [INFO] consul: adding WAN server a1.dc1 (Addr: 192.168.100.104:8300) (DC: dc1)
2016/03/18 21:22:31 [INFO] consul: adding LAN server a1 (Addr: 192.168.100.104:8300) (DC: dc1)
2016/03/18 21:22:31 [ERR] agent: failed to sync remote state: No cluster leader
2016/03/18 21:22:32 [WARN] raft: Heartbeat timeout reached, starting election
2016/03/18 21:22:32 [INFO] raft: Node at 192.168.100.104:8300 [Candidate] entering Candidate state
2016/03/18 21:22:32 [INFO] raft: Election won. Tally: 1
2016/03/18 21:22:32 [INFO] raft: Node at 192.168.100.104:8300 [Leader] entering Leader state
2016/03/18 21:22:32 [INFO] consul: cluster leadership acquired
2016/03/18 21:22:32 [INFO] consul: New leader elected: a1
2016/03/18 21:22:32 [INFO] raft: Disabling EnableSingleNode (bootstrap)
2016/03/18 21:22:32 [INFO] consul: member 'a1' joined, marking health alive
2016/03/18 21:22:34 [INFO] agent: Synced service 'consul'
2016/03/18 21:22:34 [INFO] agent: Synced service 'web'
...
...
...
ARG | Comment |
---|---|
-server | 以服务模式运行 |
-bootstrap-expect | 指定期望加入的节点数 |
-data-dir | 指定数据存放的位置 |
-node | 指定节点名 |
-bind | 指定绑定的IP |
-config-dir | 指定配置目录 |
相关文章
- appium 遇到的坑
- 谷歌启动 Android 12 的下一个开发者预览版
- 谷歌放大招!安卓12预览版最后一次更新,2021年8月或问世
- iOS 有哪些迷惑的设计规范?
- iOS系统即将迎来升级,新功能备受欢迎,安卓用户只能干看着
- iOS15新功能来袭,让人惊喜让人忧,你们期待吗?
- 安卓8GB运存都表示卡顿了,为何苹果手机才4GB却一点不着急
- 谷歌大脑创始成员辞职,他也和Jeff Dean闹掰了
- 交互优化方案的流程是什么样的?来看高手的总结!
- B端设计师怎样发挥设计价值?来看京东高手的总结!
- Android 12现在有了设备搜索API 可用于第三方启动程序
- 10 年版权案终了结:美最高法院裁定谷歌安卓系统未侵权甲骨文 Java
- 谷歌地图大更新!AR导航转室内,机场商场不再难逛
- 苹果iOS系统隐藏的6个实用功能,不会用真是太浪费了
- iOS 14.5不再默认为女性语音 英语Siri新增两种声音
- 支付宝收钱码提现免费服务再延长 3 年,且不设单笔上限和单日上限
- 手机内存怎么删?这三种方式都可以实现,根据需求选择即可
- 图数据挖掘:小世界网络模型和分散式搜索
- 知识图谱实体对齐3:无监督和自监督的方法
- 谷歌准备发布 Fuchsia 首个开发者预览版