记忆角落

  • {{ item.name }}
  • EMQX伪集群部署
  • 前提
  • 安装 EMQX
  • 压缩包安装
  • 添加到全局环境变量(可选)
  • 启停命令使用
  • 开机自启动
  • 占用以下端口
  • EMQX 集群配置
  • static 集群
  • 验证集群发布与订阅
  • 配置 Nginx 网关
  • 首页
  • 关于
  • 归档
  • 邻居
  • 捐赠

EMQX伪集群部署

  • 郭良俊只狗
  • 2022-06-26
  • 1

EMQX伪集群部署

前提

集群部署参考:https://www.emqx.io/docs/zh/v4.4/getting-started/cluster.html#%E8%8A%82%E7%82%B9%E5%8F%91%E7%8E%B0%E4%B8%8E%E8%87%AA%E5%8A%A8%E9%9B%86%E7%BE%A4

hostname ip
host01 192.168.100.101
host02 192.168.100.102
host03 192.168.100.103

安装 EMQX

因为服务器都是centos7的,也为了以后给实施能部署方便,因此采用压缩包安装

压缩包安装

下载地址:https://www.emqx.com/zh/try?product=broker

然后我们选择我们对应的版本信息,然后下载压缩包即可,下载完成后进行解压即可,

unzip emqx-centos7-4.3.15-amd64.zip

添加到全局环境变量(可选)

export EMQX_HOME=/usr/local/src/emqx
echo "PATH=\$PATH:$EMQX_HOME/bin" > /etc/profile.d/emqx.sh
chmod +x /etc/profile.d/emqx.sh

环境变量生效即可:source /etc/profile

启停命令使用

启动:emqx start

停止:emqx stop

重启:emqx restart

详情:https://www.emqx.io/docs/zh/v4.4/getting-started/command-line.html

开机自启动

echo "source /etc/profile && cd /usr/local/src/emqx/bin && sudo ./emqx start"  >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

占用以下端口

EMQX 默认开启的 MQTT 服务 TCP 端口:

端口 说明
1883 MQTT 协议端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
8084 MQTT/WebSocket/SSL 端口
8081 管理 API 端口
18083 Dashboard 端口

EMQX 节点集群使用的 TCP 端口:

端口 说明
4369 集群节点发现端口 (EPMD 模式)
4370 集群节点发现端口
5370 集群节点 PRC 通道

EMQX 集群配置

static 集群

static 集群是通过预先存储在各节点的 EMQX 节点的节点列表来实现集群的发现,配置方法较为简单,我们到 192.168.100.101 的节点配置文件,

# 配置文件在安装目录下的 etc/emqx.conf
vi /usr/local/src/emqx/etc/emqx.conf

修改文件内容如下(我为了快捷,直接sed)

# 修改集群模式为 static
# cluster.discovery = static
sed -i "s/cluster.discovery = manual/cluster.discovery = static/g" emqx.conf

# 设置节点发现列表
# cluster.static.seeds = emqx@192.168.100.101,emqx@192.168.100.102,emqx@192.168.100.103
sed -i "s/## cluster.static.seeds = emqx1@127.0.0.1,emqx2@127.0.0.1/cluster.static.seeds = emqx@192.168.100.101,emqx@192.168.100.102,emqx@192.168.100.103/g" emqx.conf

# 设置节点名称,请注意,节点标识必须和上面节点发现列表中的一致,否则将无法实现集群节点发现
# node.name = emqx@192.168.100.101
sed -i "s/node.name = emqx@127.0.0.1/node.name = emqx@192.168.100.101/g" emqx.conf

192.168.100.102 和192.168.100.103 配置文件一样,区别在于node.name

# 102
# node.name = emqx@192.168.100.102
sed -i "s/node.name = emqx@127.0.0.1/node.name = emqx@192.168.100.102/g" emqx.conf
# 103
# node.name = emqx@192.168.100.103
sed -i "s/node.name = emqx@127.0.0.1/node.name = emqx@192.168.100.103/g" emqx.conf

现在让我们启动集群中的每个节点,

emqx restart

进入控制台,看看效果如何

image-20220626234353922

可以看到在不同的节点上,监控界面显示的节点数如图所示,说明集群已经启动。

验证集群发布与订阅

可使用 MQTTX 工具对 集群进行消息发送测试

配置 Nginx 网关

官方推荐配置LB的负载高可用,但需求暂时没说需要高可用...

© 2012 - 2023 记忆角落 网站统计
Theme by Wing
粤ICP备14056850号-1 又拍云CDN赞助