EMQ X 集群自动发现

EMQ X 版本支持多种策略的节点自动发现与集群:

策略说明
manual手工命令创建集群
static静态节点列表自动集群
mcastUDP 组播方式自动集群
dnsDNS A 记录自动集群
etcd通过 etcd 自动集群
k8sKubernetes 服务自动集群

manual 手动创建集群

默认配置为手动创建集群,节点通过 ./bin/emqx_ctl join <Node> 命令加入:

  1. cluster.discovery = manual

基于 static 节点列表自动集群

集群发现策略为 static:

  1. cluster.discovery = static

静态节点列表:

  1. cluster.static.seeds = emqx1@127.0.0.1,emqx2@127.0.0.1

基于 mcast 组播自动集群

集群发现策略为 mcast:

  1. cluster.discovery = mcast

IP 组播地址:

  1. cluster.mcast.addr = 239.192.0.1

组播端口范围:

  1. cluster.mcast.ports = 4369,4370

网卡地址:

  1. cluster.mcast.iface = 0.0.0.0

组播 TTL:

  1. cluster.mcast.ttl = 255

是否循环发送组播报文:

  1. cluster.mcast.loop = on

基于 DNS A 记录自动集群

集群发现策略为 dns:

  1. cluster.discovery = dns

dns 名字:

  1. cluster.dns.name = localhost

用于和 IP 地址一起构建节点名字的应用名字:

  1. cluster.dns.app = emqx

基于 etcd 自动集群

集群发现策略为 etcd:

  1. cluster.discovery = etcd

etcd 服务器列表,以 , 进行分隔:

  1. cluster.etcd.server = http://127.0.0.1:2379

用于 etcd 中节点路径的前缀,集群中的每个节点都会在 etcd 创建以下路径: v2/keys/<prefix>/<cluster.name>/<node.name>:

  1. cluster.etcd.prefix = emqxcl

etcd 中节点的 TTL:

  1. cluster.etcd.node_ttl = 1m

包含客户端私有 PEM 编码密钥文件的路径:

  1. cluster.etcd.ssl.keyfile = etc/certs/client-key.pem

包含客户端证书文件的路径:

  1. cluster.etcd.ssl.certfile = etc/certs/client.pem

包含 PEM 编码的 CA 证书文件的路径:

  1. cluster.etcd.ssl.cacertfile = etc/certs/ca.pem

基于 Kubernetes 自动集群

集群发现策略为 k8s:

  1. cluster.discovery = k8s

Kubernetes API 服务器列表,以 , 进行分隔:

  1. cluster.k8s.apiserver = http://10.110.111.204:8080

帮助查找集群中的 EMQ X 节点的服务名称:

  1. cluster.k8s.service_name = emqx

用于从 k8s 服务中提取 host 的地址类型:

  1. cluster.k8s.address_type = ip

EMQ X 的节点名称:

  1. cluster.k8s.app_name = emqx

Kubernetes 的命名空间:

  1. cluster.k8s.namespace = default