首页 > 编程知识 正文

消息中间件和消息队列(消息中间件选型)

时间:2023-05-05 19:34:10 阅读:69166 作者:3454

1 .活动MQ的好处

单吞吐量:万单主题吞吐量影响:时效性:毫秒级可用性:高可用性消息可靠性(基于主从体系结构) :低数据丢失功能支持: MQ领域功能极其完善的缺点:

官方社区目前对ActiveMQ 5.x的维护更少,在大吞吐量场景中很少使用。

2.Kafka被称为大数据杀手锏,对于大数据领域的消息传输,Kafka是不可避免的。 为大数据而产生的消息中间件,以其百万级的TPS吞吐量而闻名,迅速成为大数据领域的宠儿,在数据收集、传输、存储过程中起着重要的作用。

最初,LinkedIn公司根据自己的设计将Apache Kafka实现为分布式提交日志系统“a distributed commit log”,然后成为Apache项目的一部分。

目前已被LinkedIn、Uber、Twitter、Netflix等大型企业采用。

好处

性能优异,单体写入TPS约为百万条/秒,最大的优点是吞吐量高。 时效性:毫秒级可用性:非常高,kafka是分布式的,一个数据的多个副本,少数机器停机,不会丢失数据,不可用的消费者不会通过Pull方式获取消息,消息有序,通过控制有一个很好的第三方Kafka Web管理界面Kafka-Manager在日志领域相对成熟,用于多家公司和多个开源项目的功能支持:功能相对简单,主要支持简单的MQ功能,比

如果单个Kafka使用64个以上的队列/分区,Load将明显激增。 队列越多,Load越高,发送消息的响应时间越长,使用的轮询方法越短。 实时性取决于轮询间隔时间。消耗失败不支持重试。支持消息顺序,但如果一个代理停机,则消息顺序会混乱。 社区更新缓慢的rabbitMQ于2007年发布,是基于高级消息服务队列协议(amqp )完成的可复用企业消息传递系统,是当今最主流的消息中间

3.RabbitMQ的好处:好处

根据erlang语言的特点,mq性能好,合并高; 吞吐量达万级,MQ功能比较完善结实、稳定、使用方便,跨平台,支持多种语言,文档齐全; 开源的管理界面非常棒,RabbitMQ易于使用,社区活动度高,其缺点是:

erlang开发很难看到源代码,基本功能依赖于开源社区的快速维护和错误修复,不利于二次开发和维护。 RabbitMQ的吞吐量确实很低。 这是因为他创造的实现机制很重。 需要学习比较复杂的接口和协议,学习和维护成本较高。 4.RocketMQ RocketMQ源于阿里公司的开源产品,采用Java语言实现,设计时借鉴Kafka,进行了自己的改进。

RocketMQ在阿里集团中广泛应用于订单、交易、充值、流量计算、消息推送、日志流媒体处理、binglog发布等场景。

RocketMQ的好处:

单吞吐量: 10万级可用性:非常高,分布式体系结构消息可靠性:通过优化配置参数,可以将消息丢失降至0。 M问功能是丰富的、分布式的、可扩展性的,还是支持10亿级别的消息堆栈? 不会因堆栈而导致性能下降的源代码是java。 我们可以通过自己阅读源代码和定制自己的MQ来控制RocketMQ的缺点。

支持的客户端语言很少,现在是java和c,其中c是不成熟的社区活跃度一般不在mq核心上实现JMS等接口,迁移部分系统需要选择大量的代码消息队列建议1.Kafka

Kafka的主要特点是基于Pull的模型处理消息消耗并追求高吞吐量,第一个目的是用于日志收集和传输,适用于生成大量数据的互联网服务的数据收集业务。

虽然大公司提出了选项,但是如果有日志收集功能,kafka一定会被优先考虑。

2.RocketMQ

天生就产生于金融互联网领域,在可靠性要求较高的情况下,尤其是电商中的订单扣款、业务高峰,大量交易涌入时,后端可能无法及时应对。

RoketMQ在稳定性方面可能更可靠。 这些业务场景在不在场证明11中被多次尝试。 如果您的业务有上述并行场景,我们建议您选择RocketMQ。

3.RabbitMQ

RabbitMQ :结合erlang语言自身的并发优势,性能好,社区活跃度高,但不利于二次开发和维护。 但是,RabbitMQ的社区非常活跃,可以解决开发中遇到的错误。

如果你的数据量不是很大,小公司会优先选择功能齐全的RabbitMQ。

以上是Kafka、RocketMQ、RabbitMQ的优劣比较。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。