【发布时间】:2017-07-10 23:55:57
【问题描述】:
我有一堆运行在独特端口中的 Spring Boot 微服务。我们如何在生产环境中处理这些微服务?
在生产中,我们只需要DNS,我们如何处理DNS映射。
例如:
example-microservice-1(端口:8001)
example-microservice-2(端口:8002)
示例微服务 3(端口:8003)
example-microservice-4(端口:8004)
example-microservice-5(端口:8005)
我想要类似下面的东西,
myprod.com/example-microservice-1
myprod.com/example-microservice-2 ...
而不是,
myprod:8001/example-microservice-1
myprod:8002/example-microservice-2
(由于声誉较低,删除了上面的“https/http”)
所有微服务都存在于不同的代码库中,构建时将创建单独的可运行 jar。
【问题讨论】:
-
有很多选择。研究“api网关”。你可以用 Zuul 之类的东西来构建你自己的。您可以使用 Apigee 等服务。做一些研究。
-
@Strelok 谢谢。我试过zuul。试图找到一个领先于 nginx 的理由(通过文档)。
-
是的,反向代理模式下的 nginx 也可以正常工作
-
API Gateway+ 服务注册表(例如 Netflix Zuul)应该是这种情况下的明显选择,因为您将来可能需要建立服务间通信。 nginx 应该配置在 API Gateway 前面。单个微服务不应暴露给 nginx,因为它会妨碍您的生态系统的扩展能力。
标签: java spring spring-boot dns microservices