在生产中为Lagom部署动态服务网关

时间:2020-05-19 15:34:01

标签: lagom

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

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

  • 注册到服务注册表
  • 通过使用此注册表的服务定位器可用于网络应用程序

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

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

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

1 个答案:

答案 0 :(得分:0)

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

例如,您可以使用Consul或ZooKeeper来跟踪每个服务正在运行的实例以及它们在哪里运行(where表示IP:PORT)。然后,您将需要使用基于Consul或基于ZooKeeper的Service Locator实例。如今,首选的目标部署环境是Kubernetes(无论哪种版本),因此服务位置基于k8s提供的DNS服务器上的DNS-SRV查找。在每个Pod的k8s设置中,注册步骤会自动进行,因此您无需担心。

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

有关详细说明,请参见Deploying a Lagom application to Openshift上的指南。