微服务事务保证

2022-06-03  本文已影响0人  leeliang

保证更新db和发送消息的事务

利用数据库的事务原子性

image.png

操作如图中所示

  1. 订单服务在更新order表的同时会将消息插入到outbox表(一般在类似mysql结构中使用),这里outbox扮演了消息临时队列。或者可以给order表添加一个属性,专门用来记录需要发送的message(一般在NoSQL中使用)
  2. message relay读取outbox表中的内容
  3. message relay将读取到outbox内容发送到message broker中。当成功发送到broker中后,relay在将outbox表中对应的message删除。

优势

劣势

消费事务日志

image.png

这种方法是通过消费事务日志来获取消息,然后发送到broker中。对于log miner组件,一般采用开源的实现,主要有以下开源软件

优势

劣势

上一篇 下一篇

猜你喜欢

热点阅读