架构模式: 事务日志跟踪

架构模式: 事务日志跟踪

上下文

你已经采用系统事件发布

问题

如何将消息/事件发布到数据库中的发件箱中以发送给消息代理?

要点

结论

跟踪数据库事务日志并将插入发件箱的每个消息/事件发布到消息代理。
 

尾随事务日志的机制取决于数据库:

  • MySQL binlog
  • Postgres WAL
  • AWS DynamoDB table streams

结果上下文

这种模式具有以下好处:

  • 不需要2PC
  • 保证准确

这种模式有以下缺点:

  • 虽然变得越来越普遍但相对模糊
  • 需要数据库特定的解决方案
  • 避免重复发布困难(需要消息代理提供幂等性,如果可能的化)

关联模式

  • 系统事件发布模式创建了对此模式的需求。
  • 发布者轮询是另一种解决方案

原文地址:https://www.cnblogs.com/paxlyf/p/11293730.html

时间: 2024-11-09 04:47:30

架构模式: 事务日志跟踪的相关文章

架构模式: 事务发件箱

架构模式: 事务发件箱 同时被称作 Application events(系统事件) 上下文 服务命令通常需要更新数据库并发送消息/事件.例如,参与saga的服务需要以原子方式更新数据库并发送消息/事件.同样,发布域事件的服务必须以原子方式更新聚合并发布事件.数据库更新和发送消息必须是原子的,以避免数据不一致和错误.但是,使用跨越数据库和消息代理的分布式事务以原子方式更新数据库并发布消息/事件是不可行的. 问题 如何可靠地/原子地更新数据库并发布消息/事件? 关注点 可以不选择2PC 结论 使用

架构 模式: 审计日志

架构 模式: 审计日志 上下文 您已应用微服务架构模式. 问题 如何理解用户和应用程序的行为以及解决问题? 要点 了解用户最近执行的操作非常有用:客户支持,合规性,安全性等. 解决方案 在数据库中记录用户活动. 例子 这种模式被广泛使用. 结果上线文 这种模式具有以下好处: 提供用户操作的记录 这种模式有以下缺点: 审计代码与业务逻辑交织在一起,这使业务逻辑更加复杂 关联模式 事件回溯是实施审计的可靠方式 原文地址:https://www.cnblogs.com/paxlyf/p/1129376

架构模式: 轮询发布者

架构模式: 轮询发布者 上下文 你已经采用事务发件箱模式 问题 如何将消息/事件发布到数据库中的发件箱中以发送给消息代理? 要点 结论 通过轮询数据库的发件箱表来发布消息. 结果上下文 这种模式具有以下好处: 适用于任何SQL数据库 这种模式有以下缺点: 不能保证按顺序发布事件 并非所有NoSQL数据库都支持此模式 关联模式 事务发件箱模式创建了对此模式的需求 事务日志跟踪模式是另一种解决方案 原文地址:https://www.cnblogs.com/paxlyf/p/11293742.html

SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 这个标题有点用词不当,因为运行在大容量日志恢复模式里的数据库,我们通常是长期不管理日志.但是,DBA会考虑在大容量加载时,短期切换到大容量恢复模式.当数据库在大容量模式里运行时,一些其他例如索引重建的操作会最小化日志(minimally logged),因此在日

(2.8)备份与还原--在大容量恢复模式下事务日志的角色

简介 日志的作用是保证持久性和数据一致性,通过日志可以实现数据的Undo与Redo,因此通过日志,SQL Server不仅仅可以实现灾难恢复,还可以通过日志的Redo来实现高可用性.本篇文章主要讲述日志在SQL Server中提供的几种高可用性中的作用以及在灾难恢复中的角色. 日志损坏 日志可能会由于IO子系统的故障而损坏,当出现日志损坏时,如果您对日志的原来略有了解,并能在日志损坏的情况下尽量挽救数据,那么感觉一定是非常好的:-),下面我们来了解几种日志损坏的情况下的恢复情况. 1.数据库正常

事务日志初探(二)---简单恢复模式

简述 在简单恢复模式下,日志文件的作用仅仅是保证了SQL Server事务的ACID属性.并不承担具体的恢复数据的角色.正如”简单”这个词的字面意思一样,数据的备份和恢复仅仅是依赖于手动备份和恢复.我们简单介绍下三种恢复模式. 1.完整恢复模式 这种模式会为所有操作都记录日志,当数据文件被破坏时,可以备份尾部事务日志,并用于将数据库还原到给定的时间点.因此OLTP生产系统通常会使用完整的恢复模式. 2.大容量日志恢复模式 这种模式把日志记录量最小化,只为大容量操作记录日志. 3.简单恢复模式 我

SQL Server中的事务日志管理(4/9):简单恢复模式里的日志管理

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 这个标题近乎是用词不当,因为很大程度上,运行在简单模式里不需要日志管理.在简单模式里,事务日志的唯一目的是在数据库恢复操作期间,保证事务的ACID属性,还有强制数据库的一致性和事务的持久性.事务日志不能被备份,不能用来数据库恢复,也不能用作日志传输. 在简单模式

浅谈SQL Server中的事务日志(四)----在完整恢复模式下日志的角色

浅谈SQL Server中的事务日志(四)----在完整恢复模式下日志的角色 本篇文章是系列文章中的第四篇,也是最后一篇,本篇文章需要前三篇的文章知识作为基础,前三篇的文章地址如下: 浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架 浅谈SQL Server中的事务日志(二)----事务日志在修改数据时的角色 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色 简介 生产环境下的数据是如果可以写在资产负债表上的话,我想这个资产所占的数额一定不会

浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色

浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色 本篇文章是系列文章中的第三篇,前两篇的地址如下: 浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架 浅谈SQL Server中的事务日志(二)----事务日志在修改数据时的角色 简介 在简单恢复模式下,日志文件的作用仅仅是保证了SQL Server事务的ACID属性.并不承担具体的恢复数据的角色.正如”简单”这个词的字面意思一样,数据的备份和恢复仅仅是依赖于手动备份和恢复.在开始文章之前,首先