MQTT协议介绍、技术选型,EMQ X初体验,成功跳槽阿里

  1. 消息QoS支持,可靠传输保证

应用

MQTT协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域。

  1. 物联网M2M通信,物联网大数据采集

  2. Android消息推送,WEB消息推送

  3. 移动即时消息,例如Facebook Messenger

  4. 智能硬件、智能家具、智能电器

  5. 车联网通信,电动车站桩采集

  6. 智慧城市、远程医疗、远程教育

  7. 电力、石油与能源等行业市场

技术选型


消息队列消息中间件适用场景不一样。

MQTT 与消息队列有一定的区别,队列是一种先进先出的数据结构,消息队列常用于应用服务层面,实现参考如 RabbitMQ Kafka RocketMQ;

MQTT 是传输协议,绝大部分 MQTT Broker 不保证消息顺序(Queue),常用与物联网、消息传输等,MQTT Broker 的常见需求可参考:共享行业的分布式 MQTT 设计

消息队列与MQTT异同

| 场景 | 部署端 | MQTT | 消息队列 |

| :-- | :-- | :-- | :-- |

| 设备端上报状态数据、设备通信 | 移动终端 | √ | × |

| 接收并处理分析设备的上报数据 | 移动终端 | × | √ |

| 对多个设备下发控制指令 | 服务器 | × | √ |

| 直播、弹幕、聊天 App 收发消息 | 应用 | √ | × |

| 服务端接收并分析聊天消息 | 服务器 | × | √ |

| 客户端连接数 | | 客户端规模庞大,百万甚至千万级 | 一般服务器规模较小,极少数万级 |

| 单客户端消息量 | | 单个客户端需要处理的消息少,一般定时收发消息 | 单个客户端处理消息量大,注重吞吐量 |

感觉就是面向端的用MQTT好些,面向服务内部的用MQ

MQTT Broker选型

看了一圈,需求是Java语言,开源的,成熟的 奈何没有。。。

  • EMQ X

  • 优点:功能强大,成熟,国人开发,文档中文且齐全

  • 缺点:Erlang语言开发,扩展难,消息存储功能只有企业版才有,也可以通过webhook免费扩展但性能肯定没有内置的强

选用:https://www.emqx.com/zh

EMQ X是一个基于Erlang语言的开源mqtt服务器,目前来看是开源的最好的mqtt服务器,也是国内开源的mqtt服务器,优点是功能全面,文档齐全,社区活跃,有很好的支持,缺点是因为erlang语言,对于其他语言的开发者自己扩展有一定难度。官方文档是:EMQ(开源)

  • 其他Java未测试

EMQ X

==============================================================

简介


https://docs.emqx.cn/broker/v4.3/

EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。

Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed)的语言平台。

MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。

EMQ X 设计目标是实现高可靠,并支持承载海量物联网终端的MQTT连接,支持在海量物联网设备间低延时消息路由:

  1. 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。

  2. 分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。

  3. 消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。

  4. 完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有协议支持。

安装


EMQ X 目前支持的操作系统:

  • CentOS 6

  • CentOS 7

  • CentOS 8

  • OpenSUSE tumbleweed

  • Debian 9

  • Debian 10

  • Ubuntu 16.04

  • Ubuntu 18.04

  • Ubuntu 20.04

  • macOS 10.13

  • macOS 10.14

  • macOS 10.15

  • Windows Server 2019

WARNING

产品部署建议 Linux 服务器,不推荐 Windows 服务器。

地址:https://docs.emqx.cn/broker/v4.3/getting-started/install.html

多种方式,按需选择

后台启动 EMQ X

$ emqx start

EMQ X v4.0.0 is started successfully!

查看EMQ X状态

$ emqx_ctl status

Node ‘emqx@127.0.0.1’ is started

emqx 4.0.0 is running

Dashboard


EMQ X 提供了 Dashboard 以方便用户管理设备与监控相关指标。通过 Dashboard,你可以查看服务器基本信息、负载情况和统计数据,可以查看某个客户端的连接状态等信息甚至断开其连接,也可以动态加载和卸载指定插件。除此之外,EMQ X Dashboard 还提供了规则引擎的可视化操作界面,同时集成了一个简易的 MQTT 客户端工具供用户测试使用。

访问 http://localhost:18083 来查看你的 Dashboard,默认用户名是 admin,密码是 public

可以在setting菜单选择中文语言。

常见问题


为什么选择EMQ X?

EMQ X 与别的 MQTT 服务器相比,有以下的优点:

  • 经过100+版本的迭代,EMQ X 目前为开源社区中最流行的 MQTT 消息中间件,在各种客户严格的生产环境上经受了严苛的考验;

  • EMQ X 支持丰富的物联网协议,包括 MQTT、MQTT-SN、CoAP、 LwM2M、LoRaWAN 和 WebSocket 等;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。

《Java高级面试》

《Java高级架构知识》

《算法知识》

,可以添加V获取:vip1024b (备注Java)**
[外链图片转存中…(img-71I9KC36-1711708637701)]

最后

分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。

《Java高级面试》

[外链图片转存中…(img-eAV48lQB-1711708637702)]

《Java高级架构知识》

[外链图片转存中…(img-lyaecyUV-1711708637702)]

《算法知识》

[外链图片转存中…(img-u7mOm9c4-1711708637703)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值