简介
EMQ X 3.0 版本支持基于 Ekka 库的集群自动发现(Autocluster)。Ekka 是为 Erlang/OTP 应用开发的集群管理库,支持 Erlang 节点自动发现(Discovery)、自动集群(Autocluster)、脑裂自动愈合(Network Partition Autoheal)、自动删除宕机节点(Autoclean)。
EMQ X 3.0 支持多种策略自动发现节点创建集群:
策略
说明
manual
手工命令创建集群
static
静态节点列表自动集群
mcast
UDP 组播方式自动集群
dns
DNS A 记录自动集群
etcd
通过 etcd 自动集群
k8s
Kubernetes 服务自动集群
实验目的
实现emqx 3.0版本基于manual、static和etcd策略下的集群功能
实验环境
本实验使用Vagrant搭建实验环境。
Vagrant是构建在虚拟化技术之上的虚拟机运行环境管理工具。通过Vagrant可以方便实现的对虚拟机的管理,包括建立和删除虚拟机、配置虚拟机运行参数、管理虚拟机运行状态、自动化配置和安装开发环境必须的各类软件、打包和分发虚拟机运行环境等。
关于Vagrant的更多信息,大家可以自行参阅官方文档进行学习和安装。
本实验已经提前准备好实验环境,当安装好Vagrant之后,大家可以git clone 该项目,在根目录下将 emqx-learning-cluster-Vagrantfile重命名为 Vagrantfile 执行 vagrang up 即可启动环境。
PS:第一次启动的时候可能需要特别久的时间,因为要执行下载镜像、clone代码等环节,大家可以耐心等待,不要随意中断进程。
Vagrang可以搭建三台基于 ubuntu 16.04 的EMQ X 3.0 的节点。
节点名
主机名(FQDN)
IP 地址
emqx@192.168.233.111
node1
192.168.233.111
emqx@192.168.233.112
node2
192.168.233.112
emqx@192.168.233.113
node3
192.168.233.113
节点名格式: Name@Host, Host必须是IP地址或FQDN(主机名.域名)
使用vagrant status 查看节点的运行状态
$ vagrant status
Current machine states:
node1 running (virtualbox)
node2 running (virtualbox)
node3 running (virtualbox)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
可是使用 vagrant ssh node1 进入相应的节点
$ vagrant ssh node1
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-134-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonica