2.软文推荐
3.软文推荐
目录: 1、rabbitmq消息队列介绍 2、消息队列到底能起什么样的作用 3、消息系统的作用 rabbitmq消息队列介绍rabbitmq是建立在AMQP上的企业消息系统。
以生产者消费者为模型而存在的一个消息队列.
1、解耦
这是一个天然的解耦,实现了应用程序不再通过接口,你只需要调用消息队列的接口把结果存放在消息队列即可。
2、异步
一个同步的程序执行,通过消息队列,即可实现异步操作,而不必等待结果返回。在应对一些大并发中,起着很重要的作用.
如下图
这里就只有一个队列而已,生产者生产消费,放入到队列中,消费者进行消息消费。
这个能实现多个消费者之间进行消费的公平分发,消息者们可以通过自身的负载进行设置分发频率,比如。a消费者因为一些机器配置等的问题,导致消息没有被立即消费掉,堆积了很多消息,消费者就可以通过设置告诉rabbitmq控制分发频率,别一直发了。这其实就是类似能者多劳的意思。
如下图所示
上面的几种类型,都是消息只能发送到指定的queue中,但是想要类似广播的效果,发给所有消费者,或者像组播的形式,发送给某些特定的消费者。这时候就需要用到exchange了。
1、fanout 所有bind到此exchange的queue都可以接收消息
2、direct: 通过routingKey和exchange决定的那个唯一的queue可以接收消息
3、topic:所有符合routingKey(此时可以是一个表达式)的routingKey所bind的queue可以接收消息
表达式符号说明:
4、headers: 通过headers 来决定把消息发给哪些queue
如下图所示
这其实就是direct组播模式,设置好exchange交换机的类型,转发的时候,会检查队列中的routingkey值,如果和消息的关键字相同则转发,否则丢弃
这是topic模式,这个其实和上面一个转发有点类似,但是这个支持模糊匹配,
消息队列到底能起什么样的作用因为短信不能一次性群发,所以就有短信消息队列功能,把队列里面的短信 每各几秒或者是在多少时间内处理完。
消息系统的作用消息系统在目前的分布式系统中设计中,作用越来越大。它的使用场景,包括但不限于。
1、削峰。用于承接超出业务系统处理能力的请求,使业务平稳运行,能够大量节约成本,如秒杀活动并不是针对峰值设计容量。
2、缓冲。在服务层和缓慢的落地层作为缓冲层存在,作用与削峰类似,主要用于服务内数据流转,如批量短信发送。
3、解耦。项目尹始并不能确定具体需求。消息队列作为一个接口层,解耦重要的业务流程。需要遵守约定、针对数据编程即可获取扩展能力。
4、冗余。消息数据能够采用一对多的方式,供多个毫无关联的业务使用。
5、健壮性。消息队列可以堆积请求、消费端业务即使短时间死掉也不会影响主要业务的正常进行。

立即
返回
1
...