常用消息队列介绍

本文详细介绍了RocketMQ和RabbitMQ两种消息队列,包括它们的应用场景、优缺点、消息发送方式、消息结构和工作原理。RocketMQ在高可用和性能方面表现出色,支持顺序消息和事务消息,而RabbitMQ以其简单易用和强大的社区支持著称,基于AMQP协议。两者各有特点,适用于不同的业务需求。
摘要由CSDN通过智能技术生成

一、RocketMQ

1.1 MQ的应用场景

  1. 任务异步处理。将不需要同步处理的并且消耗长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。
  2. 应用程序解耦
  3. 日志收集

交互流程:

  • 采集系统从log日志文件采集数据,发送至消息队列
  • 各日志需求服务从消息队列接收消息进行日志处理

1.2 RocketMQ介绍

是阿里开源的一款非常优秀的中间件产品,现已成为apache基金会的顶级项目。

1.3消息队列技术选型对比


消息队列有哪些

activeMq、RabbitMQ,ZeroMQ、Kafka、MetaMQ、Redis

RabbitMQ优点:

  1. 支持AMQP协议
  2. 基于erlang语言开发,高并发性能较好
  3. 工作模式较为灵活
  4. 支持延迟消息
  5. 提供较为友好的后台管理页面
  6. 单级部署,1-2WTPS

RabbitMQ缺点:

  1. 不支持水平扩容
  2. 不支持事务
  3. 消息吞吐量三者最差
  4. 当产生消息堆积,性能下降明显
  5. 消息重发机制需要手动设置
  6. 不支持消息重复消费

RocketMQ优点:

  1. 高可用,高吞吐量,海量消息堆积,低延迟性能上,都表现出色
  2. api与架构设计更加贴切业务场景
  3. 支持顺序消息
  4. 支持事务消息
  5. 支持消息过滤
  6. 支持重复消费
  7. 支持延迟消息
  8. 支持消息跟踪
  9. 天然支持集群、负载均衡
  10. 支持指定次数和时间间隔的失败消息重发
  11. 单机部署,5-10WTPS

RocketMQ缺点:

  1. 生态圈相比较kafka有所不如
  2. 消息吞吐量与消息堆积能力也不如kafka
  3. 不支持主从自动切换
  4. 只支持java

Kafka优点:

  1. 高可用,高吞吐量,低延迟性能上,表现出色
  2. 使用人数多,技术生态圈完善
  3. 支持顺序消息
  4. 支持多种客户端
  5. 支持重复消费

Kafka缺点:

  1. 依赖分区,消费者数量受限于分区数
  2. 单级消息过多时,性能下降明显
  3. 不支持事务消息
  4. 不支持指定次数和时间间隔的失败消息重发

1.4Rocket三种消息发送方式

  1. 同步消息

producer向broker发送消息,执行API时同步等待,直到broker服务器返回发送结果。

2.异步消息

producer向broker发送消息时指定消息发送成功及发送异常的回调方法,调用API后立即返回,producer发送消息线程不阻塞,消息发送成功或失败的回调任务在一个新的线程中执行

3.单向消息

producer向broker发送消息,执行API时直接返回,不等待broker服务器的结果

1.5Rocket消息结构

RocketMQ的消息包括基础属性和扩展性两部分:

  1. 基础属性
  • topic:主题相当于消息的一级分类,具有相同的topic的消息将发送至该topic下的消息队列中,比如说一个电商系统可以分为商品消息、订单消息、物流消息等,就可以在broker中创建商品主题、订单主题等,所有商品的消息发送至该主题下的消息队列中。
  • 消息体:即消息的内容,可以是字符串、对象等类型(可系列化)。消息的最大长度是4M。
  • 消息Flag:消息的一个标记,RockerMQ不处理,留给业务系统使用。

2.扩展属性

  • tag:相当于消息的二级分类,用于消费消息时进行过滤,可为空。
  • keys:message索引键,在运维中可以根据这些key快速检索到消息,可为空。
  • waitStoreMsgOK:消息发送时是否等消息存储完成后再返回。

1.6消息中间件对比

Kafka

RocketMQ

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值