【问题标题】:Does Service Fabric provide a mechanism for distributed transactions?Service Fabric 是否提供分布式事务机制?
【发布时间】:2020-02-10 17:32:15
【问题描述】:

我们有一组微服务,它们都通过 REST API 进行通信。每个服务都将作为 Service Fabric 中的有状态参与者实现,并且每个服务都可以访问我们在 Service Fabric 中拥有的可靠集合。这些服务必须以事务方式运行。我们现在正在构建这个解决方案,对于 Service Fabric 进行分布式事务协调的能力存在争议。如果不支持分布式事务(正如一些人声称的那样),那么将使用 Nuget 包来构建解决方案以更新功能。我认为这有其自身的一系列问题,几乎就像旧的 COM 组件一样。

Service Fabric 是否具有用于使用 Web API 通信的有状态服务的分布式事务协调器?

【问题讨论】:

  • 您能否解释一下您的软件包更新方法与分布式事务有什么关系?
  • 互斥。问题是这样的。当一个操作完成时,它将通过多个微服务进行路由,这些微服务将对数据库执行一项或多项操作。完成所有微服务后,我们需要对事务进行最终提交,以确保保存所有内容。包更新的问题是,除非开发人员有足够的纪律来对他们的 NUGET 包进行版本控制(他们不是),否则有可能将 NUGET 发布到 prod 中,这将影响所有导致问题的包,而与 REST API 一样不太可能是灾难性的。
  • 只需要知道 Service Fabric 是否支持分布式事务

标签: azure-service-fabric


【解决方案1】:

,SF 事务在服务副本级别工作。也许法定人数让人们感到困惑,尽管这感觉像是一个分布式事务,但它不是您作为开发人员可以使用的东西。

通过确保事务提交完成来实现强一致性 仅在整个事务已在多数法定人数上登录后 副本数,包括主副本。

注意:

分布式事务导致的issues 比它们解决的要多,我建议您改为阅读Event Driven Architectures

【讨论】:

  • 感谢您的回答。我会将事件驱动架构视为一种可能的解决方案,而不是他们想要放置的大量代码。
猜你喜欢
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 1970-01-01
  • 2011-06-22
  • 2017-04-21
  • 2017-01-10
相关资源
最近更新 更多