消息的可靠性与重复性

消息的可靠性

生产消费过程

我们经常使用消息队列,这里我们简单介绍下消息的可靠性,笔者以kafka消息队列为背景。我们看下消息的从产生到消费的整个过程:
如下图:
生产者发送消息到Broker,Broker收到消息后,存储到内存,持久化到集群存储(根据可靠性确认,可以调参:比如如果不需要保证消息不丢失,可以收到消息后,不持久化就返回确认),发送确认给Producer,发送完成。
消费者,采取的是拉取的方式,拉取后,消费完毕(一般都是处理完消费的业务逻辑),发送确认给Broker。
在这里插入图片描述
详细,笔者梳理了导图:
在这里插入图片描述

消息重复

通过消息的可靠性我们知道,在可靠性的实现中,网络抖动、系统处理繁忙等各种不稳定的情况下
在发送阶段:发送确认超时,发生消息重发。
消费阶段:消费超时,发送消息重发;消费确认超时,也会发生消息重发。
此时,我们需要对重复消息,一般会在消费端,做幂等性处理即对消费消息的业务逻辑做幂等性设计。
一般的业务幂等性设计如下导图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值