微服务中的事务处理与工作流构建
1. 事务处理与有效一次处理
1.1 事务的重要性
事务在微服务中具有强大的功能,以 Apache Kafka 为例,事务使其相较于竞争对手具有显著优势。它能够适应新的业务需求,避免为确保原子生产而进行复杂的重构。
1.2 库存会计服务示例
库存会计服务负责在任何给定商品库存不足时发出通知事件。该微服务需根据一段时间内的增减操作,计算每个产品的当前可用库存。销售、损坏和失窃会减少库存,而收货和客户退货则会增加库存。这些事件在同一事件流中展示,如下图所示:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(销售、损坏、失窃):::process --> B(库存减少):::process
C(收货、客户退货):::process --> D(库存增加):::process
B --> E(库存会计服务):::process
D --> E
E --> F(计算当前库存):::process
F --> G(与阈值比较):::process
G -->|库存低| H(发出通知):::process
此服务计算当前库存的运行总和,并将其存储在数据存储中。业务逻辑会根据阈值过滤,决定是否向库存管理部门发出库存不足或超售的通知。关键在于确保每个输入事件仅对聚合状态有效应用一次。
超级会员免费看
订阅专栏 解锁全文
171万+

被折叠的 条评论
为什么被折叠?



