主流MQ对比和选型

2024-06-20 22:04
文章标签 主流 对比 选型 mq

本文主要是介绍主流MQ对比和选型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 在以下几个我们比较关心的维度进行对比

ActiveMQ

RabbitMQ 

RocketMQkafka
官网https://activemq.apache.org/https://www.rabbitmq.com/https://rocketmq.apache.org/https://kafka.apache.org/
githubhttps://github.com/apache/activemqhttps://github.com/rabbitmqhttps://github.com/apache/rocketmqhttps://github.com/apache/kafka
开发语言(二次开发参考)JavaErlangJavaScala
SDK语言支持(技术选型和二次开发参考)Java、C、C++、C#、Ruby、Perl、Python、PHP等Java、C#、Erlang、.NetJava、C++、C#、GoScala
协议支持OpenWire、Stomp、AMQP、MQTT、JMSAMQP、STOMP、MQTT、

RabbitMQ Streams

TCP、JMS、 OpenMessagingTCP
是否支持事务

支持


在 ActiveMQ 中,事务消息通常与会话(Session)对象一起使用。您可以创建一个事务性会话(Transaction Session),然后在事务中发送或接收消息。

支持


在 RabbitMQ 中,事务消息通常与通道(Channel)对象一起使用。您可以在通道上开启一个事务,然后在事务中发送或接收消息。

支持


发送半消息(Half Message)->本地事务执行->确认事务消息

Kafka在0.11.0.0版本开始支持事务消息


使用initTransactions()、beginTransaction()、sendOffsetToTransaction()和commitTransaction()来完成事务消息发送和消费的

是否支持批量消息不支持不支持支持,具有同步模式,避免消息丢失支持,使用异步生产者
消息可靠性有较低的概率丢失数据经过参数优化配置,消息可以做到0丢失经过参数优化配置,消息可以做到0丢失
单机吞吐量万级万级10万级10万级
高可用性和故障转移支持,取决于存储,如果使用 levelDB,则需要 ZooKeeper 服务器支持,集群方式通过镜像队列,将队列和它的消息存储复制到集群中的多个节点支持主从模式,无需其他套件支持,需要 ZooKeeper 服务器
管理台一般无,有社区版本web
社区活跃度
持久化方式内存、文件、数据库内存、文件,支持数据堆积,但数据堆积会影响生产速率磁盘文件磁盘文件,只要磁盘容量足够,可以做到无限消息堆积
适用场景

非常成熟,功能强大

、性能一般;主要是基于解耦和异步来用的,较少在大规模吞吐的场景中使用

中小型公司,基础架构研发能力较弱,采用RabbitMQ是不错的选择,但是Erlang语言环境二次开发困难性能较好,部署简单;有较大吞吐量需求,同时可能会有大量的topic,基础架构研发实力较强的大公司,完全可以采用RocketMQ性能较好,超高的吞吐量;非常适合在大数据领域中数据收集以及日志采集中;单机topic不宜过多超过64个队列/分区性能下降

这篇关于主流MQ对比和选型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1079376

相关文章

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

类的load方法和initialize方法对比

1. load方法在main()之前被调用,而initialize方法在main()之后调用 load方法实际是在load_images过程中被调用的。load_images会将当前应用依赖的所有镜像(动态库)加载到内存,在在加载中首先是对镜像进行扫描,将所有包含 load 方法的类加入列表 loadable_classes ,然后从这个列表中逐一调用其所包含的 load 方法。 +[XXCl

JavaScript正则表达式六大利器:`test`、`exec`、`match`、`matchAll`、`search`与`replace`详解及对比

在JavaScript中,正则表达式(Regular Expression)是一种用于文本搜索、替换、匹配和验证的强大工具。本文将深入解析与正则表达式相关的几个主要执行方法:test、exec、match、matchAll、search和replace,并对它们进行对比,帮助开发者更好地理解这些方法的使用场景和差异。 正则表达式基础 在深入解析方法之前,先简要回顾一下正则表达式的基础知识。正则

【HarmonyOS】-TaskPool和Worker的对比实践

ArkTS提供了TaskPool与Worker两种多线程并发方案,下面我们将从其工作原理、使用效果对比两种方案的差异,进而选择适用于ArkTS图片编辑场景的并发方案。 TaskPool与Worker工作原理 TaskPool与Worker两种多线程并发能力均是基于 Actor并发模型实现的。Worker主、子线程通过收发消息进行通信;TaskPool基于Worker做了更多场景化的功能封装,例

一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)

1.没有分段的情况 原函数为一元二次凹函数(开口向下),如下: 因为要使得其存在正解,必须满足,那么。 上述函数的最优结果为:,。 对应的mathematica代码如下: Clear["Global`*"]f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)Maximize[{f0[x, a, b,

claude和chatgpt对比:哪一个更适合你?

前言 我们都知道,Claude和ChatGPT都是当前人工智能领域中备受关注的对话生成模型,作为国外AI模型两大巨头,好像他们的实力都不相上下呀! 这时就会有很多同学疑惑,那我如果想选择AI,到底是选择Claude,还是ChatGPT呢?哪个更好呢?他们之间有什么不同独特的地方呢?他们又分别适合在哪些场景使用呢? 技术背景 Claude是由Anthropic公司开发的高性能模型,而Chat

算法复杂度 —— 数据结构前言、算法效率、时间复杂度、空间复杂度、常见复杂度对比、复杂度算法题(旋转数组)

目录 一、数据结构前言 1、数据结构 2、算法 3、学习方法 二、 算法效率 引入概念:算法复杂度  三、时间复杂度 1、大O的渐进表示法 2、时间复杂度计算示例  四、空间复杂度 计算示例:空间复杂度 五、常见复杂度对比 六、复杂度算法题(旋转数组) 1、思路1 2、思路2 3、思路3 一、数据结构前言 1、数据结构         数据结构(D

机器视觉硬件选型根据某项目相机镜头

一 项目总需求 1、大视野检测需求: (1)大视野: ①产品尺寸15.6寸屏幕,产品大小:350mm x 225mm; ②产品料盘尺寸大小:565mm x 425mm; ③工作距离:880mm;检测精度:500μm; 1、大视野检测需求: (1)大视野: ①产品尺寸15.6寸屏幕,产品大小:350mm x 225mm; ②产品料盘尺寸大小:565mm x 425mm; 工作距离:

Matplotlib图像读取和输出及jpg、png格式对比,及透明通道alpha设置

图像像素值 图像像素值一般size为3,也就是通道数,分别代表R,G,B,如果只有单一 一个值则表示灰度值,也就是说一张二维图片,当长和宽都为1080时,那么若是灰度图像,图像尺寸为(1080,1080,1)若是RGB图像则为(1080,1080,3), jpg、png图像格式 jpg图像的灰度值范围和RGB范围为[0,255],数值类型为uint8,也就是无符号整数 png图像的灰度值范

泛型参Class、Class、Class的对比区别

1.原文链接 泛型参Class、Class、Class的对比区别 https://blog.csdn.net/jitianxia68/article/details/73610606 <? extends T>和<? super T> https://www.cnblogs.com/drizzlewithwind/p/6100164.html   2.具体内容: 泛型参数Class、