51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

mqtt 安装 (k8s -kubesphere)-emqx

常见的MQ产品 - RabbitMQ -RocketMQ -MQTT : 连接

mqtt 之 emqx docker 安装 配置ssl 证书 : 连接

mqtt 安装 (k8s -kubesphere)-EMQ : 连接

使用MQTT通信,就少不了MQTT服务器,它是消息传送的中转站(代理)。

也就是说MQTT服务器并不存储消息,消息的发布与接收都由客户端完成。

目前较流行的两者MQTT服务器的搭建:EMQ和Mosquitto。这两种服务器都是开源的,这里写的是部署在windows服务器上的方法(没办法菜鸟只能搞win,以后再玩玩Linux)。

mqtt - mosquitto v1.6 docker版 安装 :连接

参考: MQTT服务器部署_mqtt 部署-CSDN博客

docker-compose部署emqx - 知乎 (zhihu.com)

如果要修改密码 参考:

Docker安装emqx详解(配置SSL证书、开启WSS、鉴权)_MingShine的技术博客_51CTO博客

1- 下载

https://www.emqx.io/cn/downloads

EMQ是国人搞的一个开源框架,基于ErLang语言开发的服务器框架

2- 镜像

docker pull emqx/emqx:5.4.1

或者阿里云地址:

registry.cn-hangzhou.aliyuncs.com/baimeidashu/emqx:5.4.1

(1) 新建 有状态负载

添加环境变量:

EMQX_NAME = emqx
EMQX_HOST = node1.emqx.io

这个 EMQX_HOST 的值不能够随便起,找到 emqx 的 service

经测试: EMQX_HOST 这个配置错误后,创建主题监控报错。

(2)挂载存储卷:

首先创建2个存储卷:

vol-emqx-etc

vol-emqx-data

然后绑定一下:

存储卷:

/opt/emqx/data

/opt/emqx/etc

注意,这里绑定/etc 是有问题的, 出现空挂载问题, 解决这个问题的方法,就是先复制 一份配置文件。(可以用docker 运行完后复制一份,然后上传到k8s)

到此为止可以用了。

{#more-15607}

    volumes:
      - vol-emqx-data:/opt/emqx/data
      - vol-emqx-etc:/opt/emqx/etc
      - vol-emqx-log:/opt/emqx/log

为了保存数据,最好把这几个都改在出去

log太大了,就不保存了。

因为刚开始是空的,所以我们先建一个临时的 tmp 存储卷

        - /mnt/docker/emqx/temp:/opt/emqx/temp

拷贝配置文件到宿主机,这样修改宿主机的配置文件之后只需要重启容器,配置文件就会生效。左边是容器的路径,右边是要映射宿主机路径。

把配置文件拷贝出来就是为了之后的ssl证书配置。便于管理。

docker cp emqx:/opt/emqx/etc /home/egn/emqx/etc

3- 访问

EMQ提供了web的控制后台,默认是18083端口,打开浏览器输入地址 http://127.0.0.1:18083,

默认用户名 admin,默认密码public。

可以看到EMQ的Dashboard界面(不习惯英文界面可以在Settings里面更改设置)。

控制台主要是可以看到客户端的一些连接状态,如连接数、客户端ID、订阅的消息、订阅的消息数、发布的消息及发布的消息数等等,还可以控制插件的运行。

EMQ默认设置了一些端口,如18083就是Dashboard,还有些就是:1883(MQTT 协议端口),这个是mqtt客户端连接服务器时使用的端口;8080(HTTP API 端口),这个也比较重要,在修改API时用到;8883(MQTT/SSL 端口);8083(MQTT/WebSocket 端口)。具体各部分端口的使用可参照官方文档https://docs.emqx.io/broker/v3/cn/guide.html

二、 客户端连接

下载:

连接

Releases · thomasnordquist/MQTT-Explorer (github.com)

1-

端口 是1883- 》 31012

可以看到有许多的参数设置,这里的话只需填写MQTT Client Name(客户端名)、Protocol(通信方式)、Host(mqtt服务器地址,内网连接的话填127.0.0.1:1883即可,外网连接需要填写你自己的服务器公网地址)、Will -- QoS(mqtt的传输方式,方式0---2)、Username和Password(用户名和密码)这里可填可不填,因为现在还没有给mqtt服务器添加用户连接认证,后面再讲怎么配置。

这应该可以成功了。

赞(8)
未经允许不得转载:工具盒子 » mqtt 安装 (k8s -kubesphere)-emqx