美文网首页
事务性消息

事务性消息

作者: liangxifeng833 | 来源:发表于2020-02-16 14:01 被阅读0次

为了在原有的同步系统中新增异步消息,但是我们的目的是:第一:对于原有系统服务做到最少的代码侵入性,第二:本地DB操作+消息,要做到一致性,也就是需要在更新数据库中发布消息。以下是解决方案:

一. 使用数据库表作为消息队列(应用事务性发件箱)

  • 使用关系数据库的服务将消息/事件作为本地事务的一部分插入到发件箱表OUTBOX;
  • 使用单独的Message Relay进程将插入 数据库的事件发布到消息中间件
    应用事务性发件箱
  • 然后使用一种轮询机制,轮询查询outBox消息表,将查询到的消息发送到真正的消息队列中。最后删除outBox对应的消息;
  • 轮询数据库的方式,是不建议使用的,原因:第一:长时间轮式导致数据库性能下降,第二:如果是Nosql数据库,消息是存在一个实体的属性中的,我们需要通过查询实体的方式获取消息属性,所以建议使用事务日志模式;

使用事务日志拖尾模式发布消息事件

相关文章

网友评论

      本文标题:事务性消息

      本文链接:https://www.haomeiwen.com/subject/ycejfhtx.html