1.EMQX是什么?
EMQX 是一款开源的大规模分布式 MQTT 消息服务器,功能丰富,专为物联网 和及时通讯应用而计划。EMQX 5.0 单集群支持 MQTT 并发毗连数高达 1 亿条,单服务器的传输与处置处罚吞吐量可达每秒百万级 MQTT 消息,并包管耽误在亚毫秒级。
EMQX 支持多种协议,包罗 MQTT (3.1、3.1.1 和 5.0)、HTTP、QUIC 和 WebSocket 等,包管各种网络情况和硬件装备的可访问性。EMQX 还提供了全面的 SSL/TLS 功能支持,比如双向认证以及多种身份验证机制,为物联网 装备和应用步伐提供可靠和高效的通讯底子办法。
内置基于 SQL 的规则引擎,EMQX 可以及时提取、过滤、丰富和转换物联网 数据。别的,EMQX 接纳了无主分布式架构,以确保高可用性和程度扩展性,并提供操纵友好的用户体验和出色的可观测 性。
EMQX 拥有来自 50 多个国家的 20,000 多家企业用户,毗连环球凌驾 1 亿台物联网装备,服务企业数字化、及时化、智能化转型。
2.Docker方式安装摆设及设置
EMQX有Cloud Serverless版、Cloud 专有版、开源版、 企业版,这里摆设的是开源版,由于开源版是免费的,摆设方式有:Windows/各个Linux发行版/Docker/Docker-compose/Kubernetes(也支持国表里的云情况,详细参看官方文档) 的方式,可见摆设方式丰富,这里才有Docker的方式可以快速的将这个EMQX摆设本耍起来(本文接纳的是windows10专业版安装的docker-Desktop,在windows安装docker前面的文章也有分享,可以去观看下),至于生产的摆设方式可以参看官方的文档选择恰当自己的摆设方式,怎样组建EMQX集群,官方文档也有文档,搭建集群情况外加一个负载平衡就实现了高可用,docker方式请参看下面的步调。
2.1Docker摆设redis
- docker run --privileged=true -d --name=redis -p 6379:6379 --restart=always -v D:\redis\data:/data -v D:\redis\conf:/usr/local/etc/redis -v D:\redis\log:/var/log/redis redis --appendonly yes --requirepass 123456
复制代码 redis.conf挂载文件内容如下:
- # bind 192.168.1.100 10.0.0.1
- # bind 127.0.0.1 ::1
- bind 0.0.0.0
-
- protected-mode yes
- port 6379
- tcp-backlog 511
- requirepass 123456
- timeout 0
- tcp-keepalive 300
- daemonize no
- supervised no
- pidfile /var/run/redis_6379.pid
- loglevel notice
- logfile ""
- databases 30
- always-show-logo yes
- save 900 1
- save 300 10
- save 60 10000
- stop-writes-on-bgsave-error yes
- rdbcompression yes
- rdbchecksum yes
- dbfilename dump.rdb
- dir ./
- replica-serve-stale-data yes
- replica-read-only yes
- repl-diskless-sync no
- repl-disable-tcp-nodelay no
- replica-priority 100
- lazyfree-lazy-eviction no
- lazyfree-lazy-expire no
- lazyfree-lazy-server-del no
- replica-lazy-flush no
- appendonly yes
- appendfilename "appendonly.aof"
- no-appendfsync-on-rewrite no
- auto-aof-rewrite-percentage 100
- auto-aof-rewrite-min-size 64mb
- aof-load-truncated yes
- aof-use-rdb-preamble yes
- lua-time-limit 5000
- slowlog-max-len 128
- notify-keyspace-events ""
- hash-max-ziplist-entries 512
- hash-max-ziplist-value 64
- list-max-ziplist-size -2
- list-compress-depth 0
- set-max-intset-entries 512
- zset-max-ziplist-entries 128
- zset-max-ziplist-value 64
- hll-sparse-max-bytes 3000
- stream-node-max-bytes 4096
- stream-node-max-entries 100
- activerehashing yes
- hz 10
- dynamic-hz yes
- aof-rewrite-incremental-fsync yes
- rdb-save-incremental-fsync yes
复制代码 挂载文件路径:


上面的redis的当地docker摆设亲测有效,这里为什么必要安装redis呢?由于EMQX的客户端必要将客户端的用户名和暗码恒久化到redis中,这里的恒久化方式我们选择的是redis,官方提供的恒久化方式也比力多,可以去官网看文档
- #redis方式认证:
- https://www.emqx.io/docs/zh/v5.2/
- access-control/authn/redis.html
复制代码 我们这里使用的是redis的单机版本,还支持redis的 Sentinel、Cluster的方式,暗码加密接纳:sha256,使用RedisInsight客户端毗连工具毗连上redis
创建两个EMQX的客户端的账号和暗码,下令如下:
- HSET mqtt_user:zlf1 is_superuser 1 salt 盐值 password_hash 密码加盐sha256密文
- HSET mqtt_user:zlf2 is_superuser 1 salt 盐值 password_hash 密码加盐sha256密文
复制代码 sha256hash在线加盐加密,用于天生sha256hash加盐加密的暗码:
- https://www.bchrt.com/tools/sha256hash/
复制代码 这里在redis的0号库内里创建了两个EMQX的用户:zlf1和zlf2,两个用户的暗码可以使用上面的谁人在线天生密文,明文暗码反面集成的时间会用到客户端的账号和暗码
2.2摆设EMQX
先不挂载启动:
- docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.4.1
复制代码 将 /opt/emqx/etc 目次下的文件复制到宿主机下
然后重启删除容器,使用挂载的方式启动
Linux上docker摆设下令:
- docker run -d --name emqx \
- -p 1883:1883 -p 8083:8083 \
- -p 8084:8084 -p 8883:8883 \
- -p 18083:18083 \
- -v $PWD/etc:/opt/emqx/etc \
- -v $PWD/data:/opt/emqx/data \
- -v $PWD/log:/opt/emqx/log \
- emqx/emqx:5.4.1
复制代码 Windows上docker摆设下令:
- docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 -v D:\emqx\etc:/opt/emqx/etc -v D:\emqx\data:/opt/emqx/data -v D:\emqx\log:/opt/emqx/log emqx/emqx:5.4.1
复制代码 挂载目次如下:
2.3访问首页
http://localhost:18083/(localhost 可更换为您的现实 IP 所在)以访问 EMQX Dashboard 管理控制台,举行装备毗连与相干指标监控 管理。
默认用户名及暗码:
初次登录有个改暗码页面,可以修改也可以跳过
2.4添加客户端认证方式
3.相干文档链接
3.1官方文档
- https://www.emqx.io/docs/zh/v5.2/
复制代码 3.2MQTTX客户端下载所在
- https://mqttx.app/zh
- https://mqttx.app/zh/downloads
复制代码 3.3关于MQTT的齐备
- http://www.emqx.io/online-mqtt-client#/help
复制代码 3.4MQTT教程
- https://www.emqx.com/zh/mqtt-guide?utm_source=mqttx-web&utm_medium=referral&utm_campaign=mqttx-web-help-to-learn-mqtt
复制代码 3.5下载所在
- https://www.emqx.io/downloads?os=Docker
复制代码 3.6Kubernetes摆设文档
- https://docs.emqx.com/zh/emqx-operator/latest/getting-started/getting-started.html
复制代码 4.MQTTX客户端
4.1新建毗连
4.2已毗连
4.3服务端的客户端毗连
使用该工具就可以模拟发消息测试。
5.总结
到此,EMQX摆设就分享完了,MQTT协议是一个物联网场景下用的特殊多的一个协议,版本有MQTT3、MQTT3.1.1、MQTT5.0,MQTT在弱网情况下比别的的一些协议要稳固,它也是构建在tcp协议之上的一个协议,之前的文章分享过一个TIO的开源的websock项目,TIO在弱网情况就没有EMQX稳固且性能也没有EMQX好,以是可以使用EMQX更换前面的TIO,盼望我的分享对你有所资助,反面还会给各人分享,开辟中怎样集成使用MQTT,敬请等候,请一键三连,么么么哒!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |