博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EMQX环境搭建
阅读量:2068 次
发布时间:2019-04-29

本文共 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 的自动集群

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: 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/

你可能感兴趣的文章
eclipse 创建maven 项目 动态web工程完整示例
查看>>
前端JSP与Spring MVC交互实用例子
查看>>
使用maven一步一步构建spring mvc项目
查看>>
hadoop map reduce 阶段笔记
查看>>
java jackcess 操作 access
查看>>
Git问题Everything up-to-date解决
查看>>
Hadoop HDFS文件操作的Java代码
查看>>
Hadoop学习笔记—3.Hadoop RPC机制的使用
查看>>
Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
查看>>
JTS Geometry关系判断和分析
查看>>
GIS基本概念
查看>>
Java文件操作①——XML文件的读取
查看>>
java学习总结之文件操作--ByteArrayOutputStream的用法
查看>>
Java生成和操作Excel文件
查看>>
Java的三种代理模式
查看>>
java静态代理与动态代理简单分析
查看>>
JTS Geometry关系判断和分析
查看>>
阿里巴巴十年Java架构师分享,会了这个知识点的人都去BAT了
查看>>
Intellij IDEA 使用技巧一
查看>>
IDEA 护眼色设置 背景行颜色取消等设置
查看>>