本文目录:
- 1、消息系统的作用
- 2、rabbitmq消息队列介绍
- 3、Microsoft 消息队列的功能是什么
- 4、请用白话讲解ActiveMQ的用途
- 5、消息队列到底能起什么样的作用
消息系统的作用
消息系统在目前的分布式系统中设计中,作用越来越大。它的使用场景,包括但不限于。
1、削峰。用于承接超出业务系统处理能力的请求,使业务平稳运行,能够大量节约成本,如秒杀活动并不是针对峰值设计容量。
2、缓冲。在服务层和缓慢的落地层作为缓冲层存在,作用与削峰类似,主要用于服务内数据流转,如批量短信发送。
3、解耦。项目尹始并不能确定具体需求。消息队列作为一个接口层,解耦重要的业务流程。需要遵守约定、针对数据编程即可获取扩展能力。
4、冗余。消息数据能够采用一对多的方式,供多个毫无关联的业务使用。
5、健壮性。消息队列可以堆积请求、消费端业务即使短时间死掉也不会影响主要业务的正常进行。
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模式,这个其实和上面一个转发有点类似,但是这个支持模糊匹配,
Microsoft 消息队列的功能是什么
总的来说消息队列提供了一种异步消息传递机制。在windows中,一个窗口的执行分为下面几个步骤:1、窗口类声明 2、窗口类注册 3、创建窗口 4、显示窗口 5、消息循环。一般情况下,当一个窗口发生一个事件时,系统会将该事件以消息的形式送往消息队列中,消息中至少包含了:消息类型、窗口句柄、附加参数等。当窗口处于消息循环中时,系统就使用到了消息队列,它会调用GetMessage()函数从消息队列中拿出窗口事件发生时的消息,并把它交给你的程度中声明的窗口过程即回调函数去处理,从而完成一次事件的响应。
希望对你有所帮助。
请用白话讲解ActiveMQ的用途
用途就是用来处理消息,也就是处理JMS的。消息队列在大型电子商务类网站,如京东、淘宝、去哪儿等网站有着深入的应用,队列的主要作用是消除高并发访问高峰,加快网站的响应速度。
在不使用消息队列的情况下,用户的请求数据直接写入数据库,高发的情况下,会对数据库造成巨大的压力,同时也使得系统响应延迟加剧,但使用队列后,用户的请求发给队列后立即返回。
例如:不能直接给用户提示订单提交成功,京东上提示:“您提交了订单,请等待系统确认”再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库。
由于消息队列的服务处理速度远快于数据库,因此用户的响应延迟可得到有效改善。
扩展资料:
ActiveMQ主要有以下几种使用场景
1、异步调用。
2、一对多通信。
3、做多个系统的集成、同构、异构。
4、作为RPC的替代。
5、多个应用相互解耦。
6、作为事件驱动架构的幕后支撑。
7、为了提高系统的可伸缩性。
消息队列到底能起什么样的作用
因为短信不能一次性群发,所以就有短信消息队列功能,把队列里面的短信 每各几秒或者是在多少时间内处理完。
本文来源:https://www.yuntue.com/post/173224.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏