Azure Service Fabric - 服务互通和耦合
Azure Service Fabric - Service intercommunication and coupling
我正在学习 Service Fabric,许多资源似乎都在促进使用 Service Fabric 远程处理的服务间通信。
然而,关于微服务架构的许多其他资源指出,应避免服务间通信,并且如果需要,理想情况下应仅以异步方式发生(例如,通过事件中心或服务总线)。通过这种方式,服务只是松散耦合的。
因此,Service Fabric 远程处理是否会促进服务之间更紧密的耦合,从而可能抵消微服务架构的某些优势并引入脆弱性?还是在使用 Service Fabric 时以某种方式减轻了这些缺点?
如果目标服务之一变得不可用或不健康,则将服务与 run-time 依赖项耦合在一起会导致问题。
顺丰有built-instrategies处理unhealthy-ness,可以滚动升级,降低宕机风险。
另一个方面是服务调用服务,共享一个模式。这也是一种耦合形式。更改服务的架构可能需要其调用者也进行更改。 SF 并未缓解此问题。
在 bounded context 中一起工作的服务和参与者通常会一起更改,因此在这个范围内,一些紧密耦合是可以接受的。
跨域通信时,我仍然建议使用 Event Driven approach. Either within the cluster, or using an external broker like Azure Service Bus。
我正在学习 Service Fabric,许多资源似乎都在促进使用 Service Fabric 远程处理的服务间通信。
然而,关于微服务架构的许多其他资源指出,应避免服务间通信,并且如果需要,理想情况下应仅以异步方式发生(例如,通过事件中心或服务总线)。通过这种方式,服务只是松散耦合的。
因此,Service Fabric 远程处理是否会促进服务之间更紧密的耦合,从而可能抵消微服务架构的某些优势并引入脆弱性?还是在使用 Service Fabric 时以某种方式减轻了这些缺点?
如果目标服务之一变得不可用或不健康,则将服务与 run-time 依赖项耦合在一起会导致问题。
顺丰有built-instrategies处理unhealthy-ness,可以滚动升级,降低宕机风险。
另一个方面是服务调用服务,共享一个模式。这也是一种耦合形式。更改服务的架构可能需要其调用者也进行更改。 SF 并未缓解此问题。
在 bounded context 中一起工作的服务和参与者通常会一起更改,因此在这个范围内,一些紧密耦合是可以接受的。
跨域通信时,我仍然建议使用 Event Driven approach. Either within the cluster, or using an external broker like Azure Service Bus。