6、消息队列核心概念与安全保障

消息队列核心概念与安全保障

1. 生产者与消费者的隔离

在设计系统时,一个重要目标是将不同层级解耦,消息队列层级能帮助我们实现收集层和分析层的解耦。这一设计有其必要性和显著优势。

在实际业务中,根据业务需求和流式系统设计,可能会出现生产者(收集层)生成消息的速度超过消费者(分析层)消费速度的情况。这通常是因为分析层的处理强度高于收集层,无法快速处理数据,进而带来两个挑战:一是消费者无法及时从收集层消费数据该怎么办;二是如何防止分析层被收集层产生的事件激增所淹没。

为了更形象地理解,我们可以想象这样一个场景:一根水管末端被堵住,而水龙头却开着,水管会膨胀,最终因背压而爆裂。对应到数据领域,数据从收集层流向分析层也存在类似情况,可分为三个阶段:
- 阶段A :数据流动正常,这是我们期望看到的状态。
- 阶段B :出现异常,背压开始累积。
- 阶段C :数据管道在压力下破裂,数据丢失,且永远无法恢复。

这种数据丢失的情况对某些业务来说可能是灾难性的。乍一看,这似乎是消费者的问题,我们可能会认为增加消费者数量或提高其处理速度就能解决。但实际上,在很多用例中,消费者偶尔缓慢读取或离线是完全可以接受的。例如,消费者可能仅需每小时读取一次所有消息以支持批处理用例,它们会间歇性离线,然后连接并读取上一小时的数据。

需要注意的是,并非所有消息队列系统都提供生产者流量控制功能,这就需要应用开发者自行控制收集层生成消息的速率。否则,可能会使消费者和代理不堪重负。支持持久消息的消息队列产品能够让消费者缓慢读取消息或偶尔离线

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值