EMQ X 集群自动发现
EMQ X 版本支持多种策略的节点自动发现与集群:
策略 | 说明 |
---|---|
manual | 手工命令创建集群 |
static | 静态节点列表自动集群 |
mcast | UDP 组播方式自动集群 |
dns | DNS A 记录自动集群 |
etcd | 通过 etcd 自动集群 |
k8s | Kubernetes 服务自动集群 |
manual 手动创建集群
默认配置为手动创建集群,节点通过 ./bin/emqx_ctl join <Node> 命令加入:
cluster.discovery = manual
基于 static 节点列表自动集群
集群发现策略为 static:
cluster.discovery = static
静态节点列表:
cluster.static.seeds = emqx1@127.0.0.1,emqx2@127.0.0.1
基于 mcast 组播自动集群
集群发现策略为 mcast:
cluster.discovery = mcast
IP 组播地址:
cluster.mcast.addr = 239.192.0.1
组播端口范围:
cluster.mcast.ports = 4369,4370
网卡地址:
cluster.mcast.iface = 0.0.0.0
组播 TTL:
cluster.mcast.ttl = 255
是否循环发送组播报文:
cluster.mcast.loop = on
基于 DNS A 记录自动集群
集群发现策略为 dns:
cluster.discovery = dns
dns 名字:
cluster.dns.name = localhost
用于和 IP 地址一起构建节点名字的应用名字:
cluster.dns.app = emqx
基于 etcd 自动集群
集群发现策略为 etcd:
cluster.discovery = etcd
etcd 服务器列表,以 ,
进行分隔:
cluster.etcd.server = http://127.0.0.1:2379
用于 etcd 中节点路径的前缀,集群中的每个节点都会在 etcd 创建以下路径: v2/keys/<prefix>/<cluster.name>/<node.name>:
cluster.etcd.prefix = emqxcl
etcd 中节点的 TTL:
cluster.etcd.node_ttl = 1m
包含客户端私有 PEM 编码密钥文件的路径:
cluster.etcd.ssl.keyfile = etc/certs/client-key.pem
包含客户端证书文件的路径:
cluster.etcd.ssl.certfile = etc/certs/client.pem
包含 PEM 编码的 CA 证书文件的路径:
cluster.etcd.ssl.cacertfile = etc/certs/ca.pem
基于 Kubernetes 自动集群
集群发现策略为 k8s:
cluster.discovery = k8s
Kubernetes API 服务器列表,以 ,
进行分隔:
cluster.k8s.apiserver = http://10.110.111.204:8080
帮助查找集群中的 EMQ X 节点的服务名称:
cluster.k8s.service_name = emqx
用于从 k8s 服务中提取 host 的地址类型:
cluster.k8s.address_type = ip
EMQ X 的节点名称:
cluster.k8s.app_name = emqx
Kubernetes 的命名空间:
cluster.k8s.namespace = default