我们正在 Azure Service Fabric 中构建一个架构原型(prototype),其中有许多分区的有状态服务。这些服务实现了 Rest API。我们正在实现 API 网关方法作为我们应用程序的公共(public)接口(interface)。
Microsoft 在 Service Fabric Wordcount 示例代码中提供了此方法的示例。此示例代码仅演示转发没有正文的 GET 请求和 PUT 请求。
是否有人有任何示例代码来演示将 POST 和 PUT 请求(带有正文数据)从网关转发到有状态服务的最佳方法?
提前致谢。
最佳答案
我们自己也实现了 HTTP 网关服务。为了确保我们可以为任何内部协议(protocol)提供一个 HTTP 网关,我们使用 ASP.NET 5 中间件为基于 HTTP 的内部服务(如 ASP.NET WebAPI)实现了网关。它使用 ServicePartitionClient
和来自 CommunicationClientFactoryBase
的一些重试逻辑,将请求从/service 等内部 Service Fabric 地址路由到内部 Service Fabric 地址,例如 Fabric:/myapp/myservice。
我们开源了这个中间件,您可以在这里找到它: https://github.com/c3-ls/ServiceFabric-HttpServiceGateway
该项目的 wiki 中还有更多文档。
关于azure - Service Fabric API 网关将请求转发到所需的微服务示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32861077/