您当前的位置: 首页 > 

cuiyaonan2000

暂无认证

  • 0浏览

    0关注

    248博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

EMQX环境搭建

cuiyaonan2000 发布时间:2020-11-09 17:06:09 ,浏览量:0

序言

说了懒得搭建EMQ集群环境,正好有点空隙时间,还是要弄一下。

另外补充一点:emqx的cluster跟redis的cluster机制是一样的,都是每个服务器都可以有不同的主题,当客户端订阅或者发布的时候,服务器内部会有自己的路由转发功能。

参考资料:

  • https://docs.emqx.net/broker/v3/cn/install.html

 

环境搭建 单机环境搭建

EMQ X 消息服务器每个版本会发布 CentOS、Ubuntu、Debian、FreeBSD、macOS、Windows 、openSUSE 平台程序包与 Docker 镜像。----这里我们使用zip解压缩的方式安装EMQ X---cuiyaonan2000@163.com

下载地址: https://www.emqx.io/downloads  

#安装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

访问  http://127.0.0.1:18083,默认用户名: 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 的自动集群

etcd 是 CoreOS 发起的开源项目。它以构建高可用的分布式键值(Key-Value)数据库为目标。etcd 的应用场景多间于服务发现,解决分布式系统中同一个集群的进程之间如何相互发现并建立连接。这功能也正是 EMQ X 自动集群所需要的。 当网络中存在etcd服务器(集群)的时候,EMQ X 集群可以使用ectp的方式自动建立集群。如何安装和配置etcd服务集群超出了本文档的范围,有兴趣深入了解的读者可以参考官方文档。 在这里,我们假设在EMQ X集群所在的网络中已经安装和配置了etcd服务器。

 

配置 EMQ X 节点

您需要在各个 EMQ X 节点上编辑 'etc/emqx.conf'文件中的cluster段落和node段落。----这个步骤上面已经介绍了

配置 etcd 集群方式

如下有4个地方需要配置 服务发现选择etcd,服务器地址可以使多个用逗号分隔。集群前缀这个就是集群的名称。

  1. 您需要指定etcd服务器的地址(如果存在多个etcd服务器的时候,您可以使用服务器列表,在列表中以逗号","分隔各个服务器。)、
  2. 用于指定 EMQ X 节点的路径的前缀、路径的生存时间。----还是刚才的配置文件,修改如下的2个地方
cluster.discovery = etcd
##--------------------------------------------------------------------
## Cluster using etcd

## Etcd server list, seperated by ','.
##
## Value: String
cluster.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: String
cluster.etcd.prefix = emqxcl

## The TTL for node's path in etcd.
##
## Value: Duration
##
## Default: 1m, 1 minute
cluster.etcd.node_ttl = 1m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

关注
打赏
1638267374
查看更多评论
立即登录/注册

微信扫码登录

0.0438s