Azure Service Bus:同主题订阅间消息转发需启用EnableCrossEntityTransactions吗?
问题解答
不需要为Service Bus客户端配置EnableCrossEntityTransactions,原因如下:
你的操作流程里所有动作都围绕同一个主题T1展开:
- 从主题T1的订阅A接收消息M1,订阅A是T1的关联实体,属于同一根主题上下文
- 在事务内完成M1,这是接收操作的后续确认动作,归属于订阅A(即T1的子实体)的事务范畴
- 向同一主题T1发送消息M2,目标实体就是T1本身,和之前的操作同属一个根实体
Service Bus的本地事务默认支持同命名空间下同一根实体关联的操作(比如主题和它的订阅之间的交互),这类场景不需要启用跨实体事务配置。
只有当你需要在同一个事务中操作不同主题、不同队列,或者不同命名空间的Service Bus实体时,才需要开启EnableCrossEntityTransactions来支持跨实体的事务一致性。
内容的提问来源于stack exchange,提问作者Adam Smejkal
相关产品推荐
相关产品推荐

