Tro*_*eim 32 azure-service-fabric
在观看了Azure Service Fabric的BUILD会议视频后,我想象一下这对于我们当前基于微服务的架构是否合适.有一件事我不太确定我将如何解决,但是 - API网关/代理.
考虑一个不那么简单的微服务架构,其中您在Azure Service Fabric中运行N个服务,从而暴露REST端点.在许多情况下,您希望将这些分散的API端点打包到单条目API中供消费者使用,以避免它们直接连接到服务结构实例.Azure Service Fabric解决方案在各方面都看起来如此完整,我有点想知道当我在BUILD会谈期间提到的功能中没有看到一种简单解决这个问题的方法时我是否错过了一些明显的东西.
像Vulcan这样的服务旨在通过让服务在etcd中注册他们想要路由到它们的路径来解决这个问题.我猜测解决这个问题的一种方法可能是创建一个单独的有状态Web服务,其他服务可以自己注册,提供服务名称和路由到它们的路径.然后,有状态Web服务可以根据其状态将流量路由到正确的实例.但是,这似乎并不完全理想,例如删除应用程序时删除路由,以及通常使状态与群集中部署的服务保持同步.有没有人对此提出任何想法,或者有任何想法如何在Azure Service Fabric中解决这个问题?
Vac*_*cek 25
您需要执行此操作的服务注册/可发现性实际上已存在.有一个称为命名服务的有状态系统服务,它基本上是服务实例的注册商和他们正在监听的端点.因此,当您启动服务(无状态或有状态)并在其上打开一些侦听器时,地址将在命名服务中注册.
现在,您需要填写的部分是用户与之交互的"网关".这不必是有状态的,因为命名服务管理有状态部分.但是你必须提出一个适合你的寻址方案,然后它会将请求转发到正确的地方.基本上是这样的:
一般而言,我们不喜欢决定您的服务如何相互通信,但我们正在考虑如何将HTTP作为一个完整的内置解决方案来解决这个问题.
Chr*_*iss 19
我们也为此目的实现了HTTP网关服务.为了确保我们可以为任何内部协议提供一个HTTP网关,我们使用ASP.NET 5中间件为基于HTTP的内部服务(如ASP.NET WebAPI)实现了网关.它通过使用ServicePartitionClient和来自的一些重试逻辑将来自eg/service的请求路由到诸如fabric:/ myapp/myservice之类的内部Service Fabric地址CommunicationClientFactoryBase.
我们开源这个中间件你可以在这里找到它:https: //github.com/c3-ls/ServiceFabric-HttpServiceGateway
在项目的维基中还有一些文档.
dtr*_*ana 13
此功能是为http端点构建的,从Service Fabric 5.0版开始.该文档可在https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reverseproxy/上找到.
| 归档时间: |
|
| 查看次数: |
14135 次 |
| 最近记录: |