消息队列
1.消息队列的主要作用是在多个任务之间传递消息(数据)
2.消息队列的角色:生产者和消费者
生成者是指消息的产生端,而消费者是指消息的处理端
3.消息队列的作用
应用解耦,异步执行,削峰限流
4.应用场景:
1.如发送通知消息
通知消息的产生位置可能是在应用的各个位置产生不同的通知消息,如果同步执行则必须消息发送完成之后应用程序才能返回,但是如果采用消息队列处理,那么发送消息的位置就变成了消息的生产者,他之关系消息的产生以及保存进入发送队列,至于后续的发送完全又一个发送程序来进行处理即可,发送消息的位置只需要把要发送的消息传递给消息队列即可返回。
2.秒杀:
秒杀是一个典型的高并发场景,那么可能同时进来多个秒杀请求,如果全部进行同步处理的话对服务器的压力就可想而知了,这是如果采用消息队列,那么秒杀请求就只需要放进消息队列后即进行返回,把具体要做的事情交给后台的消费程序来处理,这是后即增加了体验的友好程序,增加的吞吐量,且后台的处理程序可以按照服务器可以接受的速度进行处理,这样也达到了了限流的效果,还有一个层面是秒杀的超量问题也可以得到控制,还可以设置一个队列长度的阈值,如果一旦达到或超过这个阈值,则关闭秒杀,启动引导页面,启动流量引向其他位置,这样也能进行适当的削峰处理。
5.消息队列中间级介绍
Redis Stream
Redis List
Redis 发布/订阅
Disque
Kafka
ActiveMQ
RockMQ
RabbitMQ
ZeroMQ
————————————————
版权声明:本文为CSDN博主「GitChat的博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/valada/java/article/details/88904110

浙公网安备 33010602011771号