【消息队列】如何做技术选型?

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 【消息队列】如何做技术选型?

什么是消息队列

消息队列是分布式系统中重要的组件

  • 主要拥有解决应用耦合、异步消息、流量削峰、日志处理、消息通讯
  • 可实现高性能、高可用、可伸缩、最终一致性架构

目前主流的消息队列

Kafka

RabbitMQ

RocketMQ ,老版本是 MetaQ 。

ActiveMQ ,目前用的人越来越少了。

优缺点对比

特性 ActiveMQ RabbitMQ RocketMQ Kafka
单击吞吐量 万级 万级 十万级 10 万级
消息可靠性 有较低的概率丢失数据 经过参数优化配置,可以做到 0 丢失 经过参数优化配置,可以做到 0 丢失 经过参数优化配置,可以做到 0 丢失
可用性 高可用,主从 高可用,镜像同步 非常高,分布式架构 非常高,分布式架构
延迟 ms 级 微秒级 ms 级 ms 级
功能支持 完备 基于 erlang 开发,并发能力很强,性能极好,延时很低 MQ 功能较为完善,还是分布式的,扩展性好 功能较为简单,主要支持简单的 MQ 功能,在大数据领域的实时计算以及日志采集被大规模使用

ActiveMQ

早起覆盖率较高,目前社区已经不活跃了,而且性能比较差。不推荐使用

RabbitMQ

优点

开源免费,比较稳定的支持,社区活跃度也高

缺点

RabbitMQ可以实现延迟队列,但是对RabbitMQ的依赖比较高,一旦切换技术栈无法使用

RocketMQ

优点

Java 语言进行实现,更容易去深入研究和掌控它,中文社区活跃

性能稳定

缺点

国产消息队列,与国外的生态圈对接较差

Kafka

优点

使用Scala和Java开发,与周围生态圈兼容性最好,大数据和流计算领域应用广泛

缺点

异步批量操作设计,同步收发消息方面响应延迟高

拓展—Redis

redis也可以做消息队列,使用list,rpush入队,lpop出队,在业务比较小的时候选择redis做消息队列也是不错的选择

总结

中小型公司,技术实力较为一般,技术挑战不是特别高,用 RabbitMQ 是不错的选择,业务比较简单的也可以使用redis

大型公司,基础架构研发实力较强,用 RocketMQ 是很好的选择

大数据领域的实时计算、日志采集等场景,用 Kafka 是业内标准的

目录
相关文章
|
消息中间件 存储 cobar
用了8年MQ!聊聊消息队列的技术选型,哪个最香! 下
用了8年MQ!聊聊消息队列的技术选型,哪个最香! 下
|
消息中间件 存储 缓存
用了8年MQ!聊聊消息队列的技术选型,哪个最香! 上
用了8年MQ!聊聊消息队列的技术选型,哪个最香! 上
|
消息中间件 存储 运维
消息队列与消息中间件概述:消息中间件核心概念与技术选型
消息队列是一个存放消息的容器,消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能、削峰、降低系统耦合性。
352 0
|
消息中间件 大数据 Kafka
|
消息中间件 NoSQL Redis
消息队列技术选型
消息队列技术选型
116 0
消息队列技术选型
|
1天前
|
消息中间件 存储 监控
RabbitMQ:分布式系统中的高效消息队列
RabbitMQ:分布式系统中的高效消息队列
|
1天前
|
消息中间件 分布式计算 监控
Python面试:消息队列(RabbitMQ、Kafka)基础知识与应用
【4月更文挑战第18天】本文探讨了Python面试中RabbitMQ与Kafka的常见问题和易错点,包括两者的基础概念、特性对比、Python客户端使用、消息队列应用场景及消息可靠性保证。重点讲解了消息丢失与重复的避免策略,并提供了实战代码示例,帮助读者提升在分布式系统中使用消息队列的能力。
40 2
|
1天前
|
消息中间件 Java
springboot整合消息队列——RabbitMQ
springboot整合消息队列——RabbitMQ
82 0
|
1天前
|
消息中间件 JSON Java
RabbitMQ消息队列
RabbitMQ消息队列
46 0
http://www.vxiaotou.com