首页 > 解决方案 > 在生产中为 Lagom 部署动态服务网关

问题描述

我开发了一套 Lagom 微服务。开发环境提供了默认的服务网关和服务定位器。

在生产环境中,我希望我的服务能够:

我应该使用什么作为服务注册表/服务定位器/服务网关?

一个简单的 NGINX 将是一个合理的服务网关,但它意味着基于重定向规则的非常静态的配置(没有实际注册)。

我找不到关于这个主题的任何代码示例,并且文档很差(它描述了很好的开发工具,但在实际生产中没有帮助)。

标签: lagom

解决方案


该领域的文档故意含糊不清,因为生态系统非常庞大且变化迅速。

例如,您可以使用 Consul 或 ZooKeeper 来跟踪为每个服务运行的实例以及它们运行的​​位置(where意味着IP:PORT)。然后你需要使用基于 Consul 或 ZooKeeper 的Service Locator实例。目前首选的目标部署环境是 Kubernetes(任何风格),因此服务位置基于 k8s 提供的 DNS 服务器上的 DNS-SRV 查找。注册步骤在每个 pod 的 k8s 设置中自动发生,因此您无需关心。

然后,边缘上能够将每个请求定向到适当进程的反向代理是一个普通的 HTTP 代理,它可以检查您的服务位置(或缓存服务位置信息)。这些天来,建议为您的每个 lagom 服务配置Ingress/ Route(用于 k8s 或OpenShift)边缘代理。

有关详细说明,请参阅将Lagom 应用程序部署到 Openshift的指南。


推荐阅读