17、事件驱动架构与空间架构:数据处理与架构特性解析

事件驱动架构与空间架构:数据处理与架构特性解析

1. 事件驱动架构中的数据丢失预防

在异步通信中,数据丢失一直是首要关注的问题。在事件驱动架构中,存在多个可能导致数据丢失的环节。数据丢失指的是消息被丢弃或未能到达其最终目的地。不过,使用异步消息传递时,可以利用一些基本的现成技术来防止数据丢失。

1.1 数据丢失场景

假设事件处理器 A 异步向队列发送消息,事件处理器 B 接收该消息并将消息中的数据插入数据库。在此典型场景中,可能出现以下三个数据丢失区域:
1. 消息从未从事件处理器 A 到达队列;或者即使到达了队列,在后续事件处理器检索消息之前,消息代理崩溃。
2. 事件处理器 B 从队列中取出下一条可用消息,但在处理该事件之前崩溃。
3. 由于某些数据错误,事件处理器 B 无法将消息持久化到数据库。

1.2 数据丢失预防技术

针对上述每个数据丢失区域,可以通过基本的消息传递技术进行缓解:
- 消息未到达队列 :使用持久消息队列和同步发送技术。持久消息队列支持保证交付,消息代理接收消息后,不仅将其存储在内存中以便快速检索,还会将消息持久化到某种物理数据存储(如文件系统或数据库)。同步发送会在消息生产者处进行阻塞等待,直到代理确认消息已持久化。这样,在事件生产者和队列之间不会丢失消息,因为消息要么仍在消息生产者处,要么已持久化到队列中。
- 事件处理器 B 崩溃 :使用客户端确认模式。默认情况下,消息出队后会立即从队列中移除(自动确认模式)。而客户端确认模式会将消息保留在队列中,并将客户端 ID 附加到消息上,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值