ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

消息中间件的应用场景

2022-02-19 16:01:44  阅读:181  来源: 互联网

标签:场景 队列 模式 发送 routing 应用 消息中间件 消息


今天基于rabbitMQ的学习聊一下他的应用场景:

1、work_queue 工作队列模式

例如我们有的时候有发送短信的的服务,同事要发送短信的时候比较多,那么一台服务吃不消,这样的话我们就可以使用这种模式来进行削峰填谷。如下图

 

 p是生产者 这个端要发送消息的量特别大(加入要发送1000),并且发送消息不影响后边的业务执行,这时候我们就使用mq来削峰。

C1和C2是相同的服务,都为短信服务,他们两个单独的处理能力为五百,这样两个加起来就有一千的量了(mq出来1000的消息量绰绰有余),而且这种模式下C1消费后C2就不会重复消费。

2、pub/sub 发布订阅模式

参照下图:

 

注意 此时红色为队列queue p是生产者 c是消费者  x是交换机

 

 使用场景:fanout 广播模式,当发送同一个消息时候c1和c2为不同的服务,分别要根据同一个消息做不同的处理,比如说c1是为了日志打印c2是为了日志保存到数据库。这个时候才用广播模式,起到应用解耦的作用。

3、routing模式 路由模式

注意:routing模式下 交换机绑定队列时要指定routing key,消息被发送时会转发到对应的队列中 ,还有交换机的类型要是direct

使用场景:下单后要对这个库存进行修改,这时候可以为库存系统专门设置一个队列,然后设置一个key,注意这时候必须是下单成功。(看不明白就别较劲了,场景是我自己想的)

 4、topics通配符模式

 

注意:其实当前模式可以实现发布订阅模式,假设所有队列绑定的都是*,那匹配时就类似于pub/sub模式了,实现routing模式,就是通配符写的不那么复杂就行,只是这种方式在设置routing key的时候更加的灵活

 使用场景:上述的皆可用(本人没有太多实战经验,键盘那选手,只是做下记录)

amqp是什么?高级消息 队列协议

AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。

 

 

未完待续。。。。

标签:场景,队列,模式,发送,routing,应用,消息中间件,消息
来源: https://www.cnblogs.com/ZHP-Study-share/p/14493919.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有