在观看了 Azure Service Fabric 的 BUILD 会议视频后,我开始想象这可能非常适合我们当前基于微服务的架构。但是,我不完全确定如何解决一件事 - API 网关/代理。
考虑一个不那么简单的微服务体系结构,其中有 N 个服务在 Azure Service Fabric 中运行,暴露 REST 端点。在许多情况下,您希望将这些零散的 API 端点打包成一个单入口 API 供消费者使用,以避免让它们直接连接到服务结构实例。Azure Service Fabric 解决方案似乎在各个方面都如此完整,以至于当我在 BUILD 会谈中提到的功能中看不到可以轻松解决此问题的方法时,我有点想知道我是否遗漏了一些明显的东西。
像Vulcan这样的服务旨在通过让服务在etcd中注册他们想要路由到它们的路径来解决这个问题。我猜测解决这个问题的一种方法可能是创建一个单独的有状态 Web 服务,其他服务可以注册自己,提供服务名称和它们需要路由到它们的路径。然后,有状态 Web 服务可以根据其状态将流量路由到正确的实例。但是,这似乎并不完全理想,例如在删除应用程序时删除路由以及通常使状态与部署在集群中的服务保持同步。有没有人考虑过这个问题,或者知道如何在 Azure Service Fabric 中解决这个问题?