本文共 2867 字,大约阅读时间需要 9 分钟。
说了懒得搭建EMQ集群环境,正好有点空隙时间,还是要弄一下。
另外补充一点:emqx的cluster跟redis的cluster机制是一样的,都是每个服务器都可以有不同的主题,当客户端订阅或者发布的时候,服务器内部会有自己的路由转发功能。
参考资料:
EMQ X 消息服务器每个版本会发布 CentOS、Ubuntu、Debian、FreeBSD、macOS、Windows 、openSUSE 平台程序包与 Docker 镜像。----这里我们使用zip解压缩的方式安装EMQ X---cuiyaonan2000@163.com
下载地址:
#安装wget工具[cuiyaonan2000@mzdssop bin]# yum install wget#安装unzip工具[cuiyaonan2000@mzdssop bin]# yum install unzip#下载执行的版本的emqx[cuiyaonan2000@mzdssop bin]# wget https://www.emqx.io/downloads/broker/v4.2.2/emqx-centos7-4.2.2-x86_64.zip#解压缩[cuiyaonan2000@mzdssop bin]# unzip emqx-centos7-4.2.2-x86_64.zip#启动[cuiyaonan2000@mzdssop bin]# ./emqx start#关闭[cuiyaonan2000@mzdssop bin]# ./emqx stop#查看服务启动状态[cuiyaonan2000@mzdssop bin]# ./emqx_ctl status
访问 ,默认用户名: admin,密码:public,如图所示,登录后先修改下版本语言为中文。方便我们使用
集群节点都会占用如下的接口
1883 MQTT 协议端口8883 MQTT/SSL 端口8083 MQTT/WebSocket 端口8080 HTTP API 端口18083 Dashboard 管理控制台端口
修改 emqx/ect/emqx.conf 文件,不同的node只是node.name后面的ip不一样其它的都一样
#这个是集群的名字cluster.name = cui#这个是当前节点的名字,且@前面必须跟clcuster.name 一样node.name = cui@10.1.80.190
#分别启动每个服务器上的emqx[cuiyaonan2000@mzdssop bin]# ./emqx start#加入集群#在10.1.80.124的节点上执行如下命令,表示加入10.1.80.190的集群中,当然也可以在190上操作[cuiyaonan2000@mzdssop bin]# ./emqx_ctl cluster join cui@10.1.80.190#查看集群状态[cuiyaonan2000@mzdssop bin]# ./emqx_ctl cluster status
#leave: 本节点退出集群[cuiyaonan2000@mzdssop bin]# ./bin/emqx_ctl cluster leave#force-leave: 从集群删除其他节点[cuiyaonan2000@mzdssop bin]# ./bin/emqx_ctl cluster force-leave emqx@192.168.3.211#force-leave: 从集群删除其他节点[cuiyaonan2000@mzdssop bin]# ./bin/emqx_ctl cluster force-leave emqx@192.168.3.211#查询所有clientid[cuiyaonan2000@mzdssop bin]# ./emqx_ctl clients list#删除某个clientid[cuiyaonan2000@mzdssop bin]# ./emqx_ctl clients kick
修改配置文件/emqx/etc/emqx.conf,将如下的allow_anonymous匿名访问给关掉,即设置成false
打开emqx_auth_username插件
添加账户
etcd 是 CoreOS 发起的开源项目。它以构建高可用的分布式键值(Key-Value)数据库为目标。etcd 的应用场景多间于服务发现,解决分布式系统中同一个集群的进程之间如何相互发现并建立连接。这功能也正是 EMQ X 自动集群所需要的。
当网络中存在etcd服务器(集群)的时候,EMQ X 集群可以使用ectp的方式自动建立集群。如何安装和配置etcd服务集群超出了本文档的范围,有兴趣深入了解的读者可以参考。 在这里,我们假设在EMQ X集群所在的网络中已经安装和配置了etcd服务器。
您需要在各个 EMQ X 节点上编辑 'etc/emqx.conf'文件中的cluster段落和node段落。----这个步骤上面已经介绍了
如下有4个地方需要配置 服务发现选择etcd,服务器地址可以使多个用逗号分隔。集群前缀这个就是集群的名称。
cluster.discovery = etcd##--------------------------------------------------------------------## Cluster using etcd## Etcd server list, seperated by ','.#### Value: Stringcluster.etcd.server = http://192.168.1.162:2379## The prefix helps build nodes path in etcd. Each node in the cluster## will create a path in etcd: v2/keys// / #### Value: Stringcluster.etcd.prefix = emqxcl## The TTL for node's path in etcd.#### Value: Duration#### Default: 1m, 1 minutecluster.etcd.node_ttl = 1m
转载地址:http://rbcmf.baihongyu.com/