EMQX集群服务搭建

52 阅读2分钟

一、 创建服务器集群

阿里云ecs服务器:ecs.console.aliyun.com/home

注意:需要选择CentOS操作系统,否则可能无法安装EMQX

二、 部署emqx服务

  1. 通过以下命令配置 EMQX Yum 源:
curl -s https://assets.emqx.com/scripts/install-emqx-rpm.sh | sudo bash

2. 安装以下依赖:

yum install epel-release -y
yum install -y openssl11 openssl11-devel

3. 安装EMQX:

sudo yum install emqx -y

4. 启动防火墙并开放端口

1883 MQTT 协议端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
8080 HTTP API 端口
18083 Dashboard 管理控制台端口

4370 Erlang 分布式传输端口
5370 集群 RPC 端口,适用于物理机环境
5369 集群 RPC 端口,适用于 Docker 环境
systemctl start firewalld
firewall-cmd --zone=public --add-port=1883/tcp --permanent
firewall-cmd --zone=public --add-port=8883/tcp --permanent
firewall-cmd --zone=public --add-port=8083/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=18083/tcp --permanent

firewall-cmd --zone=public --add-port=4370/tcp --permanent

sudo firewall-cmd --reload

注意:阿里云控制台的安全组也需要放开端口,否则无法访问服务

三、 搭建EMQX集群

  1. 修改配置文件emqx.conf

使用以下指令可以定位文件地址:

find / -name emqx.conf 2>/dev/null
vim /etc/emqx/emqx.conf

node.name XXX@后缀是内网IP

cluster.name需要和node.name前缀一致

image.png 2. 启动服务:

sudo systemctl start emqx

查看服务运行状态:

systemctl status emqx

访问18083端口可登录dashboard:

image.png

  1. 将服务加入集群:
emqx_ctl cluster join emqx@172.20.12.23

可将当前服务器(172.20.12.22)加入172.20.12.23的集群

image.png

离开集群:

emqx_ctl cluster leave

四、 客户端认证

有多种认证方式,这里主要介绍内置数据库认证和JWT认证。

image.png

  1. 内置数据库认证

使用EMQX内置的数据库储存用户名和密码,使用和管理都很方便

image.png

  1. JWT认证 JWT认证是基于 Token 的鉴权机制,不依赖服务端保留客户端的认证信息或者会话信息,在持有密钥的情况下可以批量签发认证信息,是最简便的认证方式。

image.png

登录jwt.io可以获取签名。将password设为该签名可登录。

image.png

  1. 参考:
  1. EMQX官方文档-安装EMQX:docs.emqx.com/zh/emqx/lat…
  2. EMQX官方文档-创建与管理集群:docs.emqx.com/zh/emqx/lat…
  3. CSDN-EMQX 单机及集群搭建:blog.csdn.net/m0_65819602…