跳转到主要内容

【事件驱动架构】EMQX MQTT 和 Kafka 对比

5星评论
没有投票
Last modified
星期三, 十二月 22, 2021 - 22:29

MQTT与Kafka完全不同。MQTT是由OASIS技术委员会的成员(大多数是IBM和Microsoft的高级工程师)开发的协议和技术标准。Kafka是LinkedIn首次实现的开源流平台。2011年开放源码后被Apache孵化器孵化,成为Apache软件基金会的顶级项目。

两者之间唯一的联系是它们都与发布/订阅模式相关MQTT是基于发布/订阅模式的消息传递协议,而ApacheKafka的生产和消费过程也是发布/订阅模式的一部分。如果我们实现基于MQTT协议的消息代理,从发布/订阅模式的角度来看,这个MQTT代理是否等同于Kafka?答案仍然是否定的。

虽然Kafka也是一个基于发布/订阅模式的消息传递系统,但它也被称为“分布式提交日志”或“分布式流平台”。它的主要功能是实现分布式持久数据保存。Kafka的数据单元可以理解为数据库中的一行“数据”或一条“记录”。Kafka按主题分类。当Kafka的制作者发布特定主题的消息时,消费者就消费该特定主题的消息。事实上,生产者和消费者可以理解为发布者和订阅者,主题就像数据库中的一个表。每个主题包含多个分区,分区可以分布在不同的服务器上。也就是说,通过这种方式存储和读取分布式数据。Kafka的分布式体系结构有助于读写系统的扩展和维护(例如,通过备份服务器实现冗余备份,通过构建多个服务器节点实现性能改进)。在许多有大数据分析需求的大型企业中,Kafka将被用作数据流处理平台。

MQTT最初是为物联网设备的网络访问而设计的。大多数物联网设备都是低性能、低功耗的计算机设备,网络连接质量不可靠。因此,在设计协议时需要考虑以下几个关键点:

  • 该协议应该足够轻量级,以允许嵌入式设备快速解析和响应。
  • 足够灵活,以支持物联网设备和服务的多样化。
  • 它应该被设计成异步消息协议而不是异步协议。这是因为大多数物联网设备的网络延迟很可能非常不稳定。如果使用同步消息协议,IoT设备需要等待来自服务器的响应。为大量物联网设备提供服务显然是非常不现实的。
  • 必须是双向通信,并且服务器和客户端应该能够互相发送消息。

MQTT协议完美地满足了上述要求,最新版本的MQTT v5.0协议已经过优化,使其比之前的v3.1.1版本更灵活,占用的带宽更少。

对于基于mqtt的消息代理和Kafka的区别,EMQ先生认为这是因为他们的关注点不同。Kafka专注于数据的存储和读取,针对高实时性能的流式数据处理场景,而MQTT Broker则侧重于客户端和服务器之间的通信。

MQTT broker和Kafka采用的消息交换模式非常相似,因此将它们结合起来显然是个好主意。事实上,一些MQTT代理,例如EMQ X MQTT broker, 已经实现了MQTT-broker和Kafka之间的桥接。MQTT-broker用于快速接收和处理来自大量物联网设备的消息,Kafka收集并存储这些大量数据并将其发送给数据分析员来分析和处理消息。

原文:https://medium.com/@emqtt/mqtt-and-kafka-f20d79d9dea4

本文:http://jiagoushi.pro/node/1098

讨论:请加入知识星球【首席架构师圈】或者小号【jiagoushi_pro】

Article

标签(Tags)

企业架构(35) 数据分析(35) Power BI(32) 微服务(31) 微服务架构(30) Data Analysis(30) 商务智能(30) BI(30) 认证考试(30) 微软认证(30) DA-100(28) 应用安全(27) 考试题(26) 物联网(25) 敏捷(25) Enterprise Architecture(24) 试题(20) 首席架构师(19) 首席架构师推荐(19) 云计算(19) 网络安全(18) 技术架构(17) 机器学习(17) 试卷(17) SAFe(16) 大数据(15) Kafka(15) 规模化敏捷(14) enterprise security architecture(14) 企业安全架构(14) 前端架构(14) microservice(13) 业务架构(13) 数据架构(13) IOT(13) 安全运营(13) 容器云(12) 敏捷建模(12) 服务网格(12) 数据分析师(12) 事件驱动架构(12) 区块链(12) 数据安全(12) 数据湖(11) 应用架构(10) AWS(10) 数据科学(10) 人工智能(10) Kubernetes(10) 产品管理(9) BI数据分析师(9) NGINX(9) 数字化转型(9) 深度学习(9) 软件架构(9) 架构师(9) machine learning(9) 商务智能分析师(8) CIO(8) 技术选型(8) 安全战略(8) 软件测试(8) ArchiMate(8) PostgreSQL(8) Azure(8) Cloud Computing(8) Big Data(8) API(8) MSA(8) MDM(8) 技术趋势(7) 容器云架构(7) 核心实践(7) 无服务器架构(7) JavaScript框架(7) Vue(7) React(7) 参考架构(7) DevOps(7) 数据仓库(7) Data Lake(7) Envoy architecture(7) 容器(7) 主数据架构(7) microservices(7) 技术架构师(7) digital transformation(7) 投资组合管理(6) 安全架构(6) 集成架构(6) 合同测试(6) 工控协议(6) ICS(6) Micro Service Architecture(6) Envoy架构(6) 事件驱动(6) 数字化(6) 微服务架构师(6) strategy(6) 安全工具(6) application security principle(6) Angular(6) Postgresql架构(6) 网络架构(6) agilemodeling(6) 首席架构师精选(6) 高管洞察与创新(6) 云安全(6) 合约测试(5) Event Hub(5) 应用安全原则(5) Enterprise Portfolio Management(5) WAF(5) 编程语言(5) JavaScript Frameworks(5) 用户体验(5) 云原生(5) Agile(5) Python(5) IT战略(5) 企业敏捷性(5) 数字化业务(5) API Gateway(5) 项目管理(5) Digital business(5) 工业控制系统(5) Microservice Architecture(5) ICP(5) 软件架构师(5) 数据挖掘(5) Data Architecture(5) 主数据管理(5) 性能(5) Architecture Overview(5) Best Practices(5) Data Warehouse(5) k8s(5) 战略(5) IoT(5) 解决方案(5) 工业物联网(5) 数据科学家(5) 敏捷数据(4) 领导力(4) IPS(4) 领域驱动设计(4) DDD(4) 性能调优(4) 微前端(4) Vue.js(4) Docker(4) 敏捷核心实践(4) 应用组合管理(4) Agile Core Practice(4) 程序员(4) 数据可视化(4) 前端开发(4) 前端架构师(4) 前端开发工程师(4) 容器云架构师(4) 职业发展(4) executive insights and innovation(4) enterprise agility(4) 数据湖架构师(4) 开源合规(4) 敏捷模型(4) 业务转型(4) 企业微服务架构(4) 消费者驱动的合同测试(4) JWT(4) security(4) 企业架构师(4) architecture(4) 应用架构师(4) blockchain(4) 存储架构(4) GDPR(4) Cloud(4) RESTful(4) 最佳实践(4) 分布式计算(4) 数据湖架构(4) Service Mesh(4) BDD(4) 解决方案架构师(4) Event-Driven(4) SCADA(4) 云原生架构(4) 去中心化(4) IoT(4) IoT(4) Deep Learning(4) EA(3) technology(3) NFR(3) 安全(3) 应用现代化(3) Big Data(3) Spark(3) Microservice(3)