浅谈消息队列的原理
admin
2023-05-21 05:02:08
0

什么是消息队列

这样的场景你一定不陌生:小王到M记点餐之后,服务员给了他一个号牌,并让他在柜台桌子前方等待叫号取餐。每个人都按照自己付款拿到的号牌顺序排队等叫号。即使店里人再多,也不会显得没有秩序。


在上述场景中,柜台其实就充当了一个消息队列(Message Queue)。小王等生产者把订餐的消息发送到柜台即消息队列里,又从其中取了餐即消费了消息,可以说这就是消息队列的一个完整走向——消息被发送到队列中,又成功被消费者消费。“消息队列”是在消息的传输过程中保存消息的容器,队列的主要目的是提供路由并保证消息的传递。如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。


一般来说,消息队列是一种异步的服务间通信方式,是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RocketMQ、RabbitMQ、Kafka等。

分布式消息服务的原理

在消息队列的基础上,稳定可靠的消息队列服务——分布式消息服务应运而生。分布式消息服务(Distributed Message Service,简称DMS)是一项基于高可用分布式集群技术的消息中间件服务,提供普通队列、有序队列、Kafka队列、ActiveMQ、RabbitMQ,兼容HTTP、TCP、AMQP协议,为分布式应用提供低延迟、高并发的异步通信机制。其生产和消费消息的示意图如下图所示。

浅谈消息队列的原理
消息生产者即发送消息的一方,也叫消息发送者,发送消息到指定的消息队列中。生产者将消息M发送到队列中。消息M在队列中冗余分布,存在多个副本。



浅谈消息队列的原理
消费消息的一方,也叫消息接收者,通过调用消息服务的消费接口从队列中读取消息。消费者从队列中消费消息,获取到消息M。在消费者消费消息M期间,消息M仍然停留在队列中,但消息M从被消费开始的30秒内不能被该消费组再次消费,若在这30秒内没有被消费者确认消费完成,则DMS认为消息M未消费成功,将可以被继续消费。

浅谈消息队列的原理
消费者确认消息M消费完成,消息M将不能被该消费者所在消费组消费。消息M仍然保持在队列中,并且可以被其它消费组消费,消息在队列中的保留时间为至少72小时(除非队列被删除),72小时后将会被删除。



以上就是对分布式消息服务原理的浅析,在实际选型时,可以结合自身需求去考虑不同的消息队列产品。

相关内容

热门资讯

柳州13栋房屋被震倒:地震只是... 作者丨唐驳虎核心提要1. 柳州柳南区的5.2级浅源地震造成13栋沿街自建房集体倒塌,至少2人遇难,而...
想当总统吗?愿意给万斯当副手吗... 美国副总统万斯和国务卿鲁比奥之争备受关注,虽然双方都称对方是好朋友,但是相关猜测仍是不绝于耳。鲁比奥...
2026云手机避坑实测,主流机... 很多人选云手机,都被“多开不卡顿”“账号防关联”的宣传忽悠过——要么多开3个就卡死,要么挂机半天掉线...
“特朗普这事做对了,他终于懂得... 【文/观察者网 柳白】新华社日前刊发评论文章强调,中美关系承载着两国17亿多人民的福祉,关乎世界80...
618购机最佳时机已到!内存持... 快科技5月18日消息,618前,苹果官方旗舰店iPhone 17 Pro系列全线下调1000元,降价...
“爱达·花城号”开启试航 为何... 5月16日,第二艘国产大型邮轮“爱达·花城号”从中船集团上海外高桥造船5号码头启航,开始为期12天的...
湖北荆州启动极端降雨城市内涝应... 昨天(17日)至今天凌晨,湖北荆州市出现持续性强降雨天气。荆州市荆州区、沙市区等10个乡镇现特大暴雨...
小马科斯“不留余地”坏了规矩,... 【文/观察者网专栏作者 陈相秒】2026年5月13日,菲律宾参议院发生“枪击事件”(以下简称“5·1...
“漫长的救赎”:一名留学女硕士... ▲英子 图据受访者得知判决结果的那一刻,英子(化名)的内心终于归于平静,这场与网红前男友张某纠缠两年...
“男方给了20万彩礼,我添了3... “女儿结婚的时候,男方给了20万彩礼,我添了30万,凑了50万带回去。”在福州从事工程生意的陈文华对...