常见的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版 安装 :连接
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服务器添加用户连接认证,后面再讲怎么配置。
这应该可以成功了。