消息队列技术选型:这七种消息场景一定要考虑!
2023-09-28 10:09:11 软件 357观看
摘要大家好,我是君哥。我们在做消息队列的技术选型时,往往会结合业务场景进行考虑。今天来聊一聊消息队列可能会用到的 7 种消息场景。1、普通消息消息队列最基础的功能就是生产者发送消息、Broker 保存消息,消费者来消费消

UKq28资讯网——每日最新资讯28at.com

大家好,我是君哥。UKq28资讯网——每日最新资讯28at.com

我们在做消息队列的技术选型时,往往会结合业务场景进行考虑。今天来聊一聊消息队列可能会用到的 7 种消息场景。UKq28资讯网——每日最新资讯28at.com

1、普通消息

消息队列最基础的功能就是生产者发送消息、Broker 保存消息,消费者来消费消息,以此实现系统解耦、削峰填谷的作用。UKq28资讯网——每日最新资讯28at.com

UKq28资讯网——每日最新资讯28at.com

RocketMQ 实现了消费端的死信队列,当消费者消费失败时,会进行重试,如果重试 16 次还是失败,则这条消息会被发送到死信队列。UKq28资讯网——每日最新资讯28at.com

RabbitMQ 实现了生产者和 Broker 的死信队列,下面三种情况,消息会被发送到死信队列:UKq28资讯网——每日最新资讯28at.com

  • 生产者发送消息被拒绝,并且 requeue 参数设置为 false。
  • Broker 消息过期了。
  • 队列达到最大长度。

RabbitMQ 消息变成死信消息后,会被发送到死信交换机(Dead-Letter-Exchange)。UKq28资讯网——每日最新资讯28at.com

7、优先级消息

有一些业务场景下,我们需要优先处理一些消息,比如银行里面的金卡客户、银卡客户优先级高于普通客户,他们的业务需要优先处理。如下图:UKq28资讯网——每日最新资讯28at.com

UKq28资讯网——每日最新资讯28at.com

主流消息队列中,RabbitMQ 是支持优先级队列的,代码如下:UKq28资讯网——每日最新资讯28at.com

ConnectionFactory factory=new ConnectionFactory();cnotallow=factory.newConnection();Channel channel=connection.createChannel();Map<String, Object> args = new HashMap<String, Object>();//设置优先级为 5args.put("x-max-priority", 5);channel.queueDeclare("my-priority-queue", true, false, false, args);

8、总结

消息队列技术选型,要考虑的因素很多,本文主要从业务场景来分析需要考虑的因素,同时技术上也需要考虑运维复杂度、业务规模、社区活跃度、学习成本等因素。希望本文对你使用消息队列有所帮助。UKq28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-11887-0.html消息队列技术选型:这七种消息场景一定要考虑!

声明:本网页内容旨在传播知识,不代表本站观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。

显示全文

上一篇:Havoc远控源码剖析(协议篇)

下一篇:深入理解 RocketMQ 广播消费

最新热点