更新时间:2020-05-20 11:41:09 来源:极悦 浏览4153次
消息队列是指能够提供消息排队消费功能的软件程序,是消息队列中间件的一部分。消息队列中间件是分布式系统中重要的组件。接下来要分享的小编就给大家讲解消息队列的优势、类型以及使用场景。
主要解决应用解耦、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构。
消息队列的常见类型
1.Kafka:由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写,是一种高吞吐量的分布式发布订阅消息系统,支持单机每秒百万并发。
2.RocketMQ:阿里开源的消息中间件,是一款低延迟、高可靠、可伸缩、易于使用的消息中间件。
3.RabbitMQ:由Erlang(有着和原生Socket一样低的延迟)语言开发基于AMQP协议的开源消息队列系统,能保证消息的可靠性、稳定性、安全性。
1.应用解耦。消息队列可以使消费者和生产者直接互不干涉、互不影响,只需要把消息发送到队列即可,而且可独立的扩展或修改两边的处理过程。常见场景:用户下单后,订单系统需要通知库存系统。
2.流量削锋。当客户端访问量突然剧增,对服务器的访问已经超过服务所能处理的最大峰值,甚至导致服务器超时负载崩溃,使用消息队列可以解决这个问题,可以通过控制消费者的处理速度和生产者可进入消息队列的数量等来避免峰值问题。常见场景:秒杀活动,一般会因为流量过大导致流量暴增,应用挂掉。
3.异步通信。消息队列提供了异步处理机制,可以把消息放在队列中并不立即处理,需要的时候处理,或者异步慢慢处理,一些不重要的发送短信和邮箱功能可以使用。常见场景:用户注册后需要发注册邮件和注册短信。
4.排序保证。消息队列可以控制数据处理的顺序,因为消息队列本身使用的是队列这个数据结构,FIFO(先进选出),在一些场景数据处理的顺序很重要,比如商品下单顺序等。
以上就是极悦java培训机构的小编针对“Java菜鸟教程之消息队列”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习