美文网首页
事务性消息

事务性消息

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

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

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

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

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

    相关文章

      网友评论

          本文标题:事务性消息

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