我们有一个微服务架构,每个微服务当前都托管在自己的进程中,并通过自己的 docker 镜像进行部署。课本完全分开。 在源级别,所有服务都维护在同一个 git 存储库和同一个解决方案中。 然而,我们和许多其他人一样面临着同样的问题,即严格的隔离。详细说明请参见论文“迈向云应用的现代发展”[1]。
如何“合并”.net 中现有的服务并让它们在同一个托管进程中运行?最终,我们希望保留当前的服务端点,例如:
example.com/myservice1
example.com/myservice2
example.com/myservice3
所有服务都在同一端口上运行,但每个服务都有自己的 swagger UI?例如:
example.com/myservice1/index.html
example.com/myservice2/index.html
example.com/myservice3/index.html
上述问题的背景:.net 6 和 web api...
您将需要使用第 7 层负载均衡器或代理来实现此目的并路由流量。
有很多方法可以做到这一点,要么是托管服务,如 Azure Front Door、Docker 容器中的 nginx,要么是软件级别,如 YARP Proxy