分布式事务与消息队列技术解析
1. 分布式事务基础
在更新多个事务性资源时,为确保系统完整性,事务需支持原子性、一致性、隔离性和持久性这四个特性,它们共同构成了 ACID 属性。
- 资源管理器(RM) :负责管理特定类型事务性资源的持久状态,例如关系型数据库。
- 分布式事务协调器(DTC) :通过网络协调多台机器上的事务。参与事务的每个 RM 都会在 DTC 中登记。事务完成时,DTC 会通知参与的 RM 提交或中止对各自资源所做的更改,采用两阶段协议来提交事务。
COM+ 能自动管理事务,简化组件开发。COM+ 组件可通过可配置属性表明对事务的兴趣。当此类对象被激活时,COM+ 会设置其上下文以处理事务。参与对象需单独向 COM+ 表明其操作是否成功。若有任何参与对象表明操作失败,COM+ 会中止事务;若所有参与对象都表决通过,COM+ 则会提交事务。若组件被标记为需要事务,COM+ 会自动强制该组件的 JIT 激活(JIT Activation)为 TRUE,同步(Synchronization)为 Required,这样组件能在不牺牲效率的前提下实现事务正确性。
2. 消息队列的引入
在 COM 架构中,远程方法调用基于 RPC,这是一种同步、面向连接的通信机制,方法调用会一直阻塞直到返回结果。尽管同步操作模式适用于许多应用,但在某些情况下,异步通信更为合适。
Microsoft Message Queue Server(MSMQ)为开发分布式组件提供了基础设施,使组件能通过消息进行异步通
超级会员免费看
订阅专栏 解锁全文

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



