我们在不同的 Service Fabric 应用程序中对不同的功能进行了分组。每个 Service Fabric 应用程序负责一定范围内的一组功能(例如,新闻、博客、用户都是独立的应用程序)。不同的团队可以处理这些功能范围。
每个应用程序都有一个公共(public) REST API,例如/users 或/news 或/blogs。因此,公共(public)网站可以调用这些端点并检索/发布信息。
但是,很多时候这些应用程序需要相互通信。但是设置它的最佳方法是什么?据我现在所见,有两种方法可以走:
现在我认为单独的 HTTP 端点将是可行的方法,但我想知道 RPC 调用是否更好?从设计理念来看,是否允许在应用程序之间使用 RPC 调用?或者当应用程序更新并且界面发生变化时,这会给我带来麻烦吗?
或者这里有另一种模式可以使用吗?
最佳答案
当然,当您更改服务签名或添加新内容时,您将不得不重写某些内容。因此,在这两种情况下,您都必须触摸已更改的代码和调用代码。
RPC 的问题在于您需要在任何您想使用该服务的地方都可以访问此接口(interface)。所以你实际上不能独立升级服务。 HTTP 通信可以解决这个问题。
但是对于 HTTP 通信,您需要编写相当复杂的代码,这将导致:
是的,你正在摆脱依赖(对我来说并不完全),但工作量和维护量也有所增加。而且 RPC 既便宜又简单。
只有在单独升级服务至关重要并且任何服务的升级不应停止或影响任何其他服务的工作时,我才会使用 HTTP over RPC。
关于azure-service-fabric - Service Fabric 应用程序之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38827484/