【发布时间】: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 是否支持分布式事务