观看了Azure Service Fabric的BUILD会议视频后,我想象这可能非常适合我们目前基于微服务的架构。然而,有一件事情我不太确定该如何解决 - API网关/代理。
考虑一个微不足道的微服务架构,其中您有N个在Azure Service Fabric中运行并暴露REST端点的服务。在许多情况下,您希望将这些碎片化的API端点打包到单个入口API中供消费者使用,以避免他们直接连接到服务织物实例。 Azure Service Fabric解决方案似乎在各个方面都非常完整,以至于我有点想知道是否存在一种显而易见的方式可以在BUILD演讲中提到的功能内轻松解决这个问题。
考虑一个微不足道的微服务架构,其中您有N个在Azure Service Fabric中运行并暴露REST端点的服务。在许多情况下,您希望将这些碎片化的API端点打包到单个入口API中供消费者使用,以避免他们直接连接到服务织物实例。 Azure Service Fabric解决方案似乎在各个方面都非常完整,以至于我有点想知道是否存在一种显而易见的方式可以在BUILD演讲中提到的功能内轻松解决这个问题。
像Vulcan这样的服务旨在通过在etcd中注册要路由到它们的路径来解决此问题。我猜解决这个问题的一种方式可能是创建一个单独的有状态Web服务,其他服务可以向其注册,提供服务名称和需要路由到它们的路径。然后,有状态的Web服务可以根据其状态将流量路由到正确的实例。但是,这似乎并不完全理想,例如删除应用程序时删除路由以及通常将状态与集群中部署的服务保持同步等问题。有人考虑过这个问题吗?或者有任何想法如何在Azure Service Fabric中解决这个问题吗?
fabric:/System/NamingService
,但我找不到任何接口或类似的东西,我可以使用ServiceProxy.Create<TServiceInterface>
来与之通信。我假设ServiceProxy
内部正在与其通信,所以我猜肯定有办法 :) - Trond NordheimFabricClient
中的一些内容,发现它们对于枚举群集中的节点/应用程序/部署非常有帮助。我应该能够使用这个来找出哪些服务需要流量路由(通过服务命名方案或其他方式),并实现一些简单的逻辑来测试它。感谢您的指引! - Trond Nordheim