如何让两个微服务在 azure service fabric 中监听同一个端口

How to make two microservices listen on same port in azure service fabric

我创建了一个包含两个微服务的项目,并希望它们都监听同一个端口。 我有两个单独的 ServiceManifest 文件,我在其中为它们定义了相同的端点,但是当我在本地或远程部署它时它不起作用。

当我在本地部署它时,它显示以下异常: 抛出异常:'System.Reflection.TargetInvocationException' in mscorlib.dll

根据您使用的通信堆栈,您有几种选择。

如果基于 HTTP 的 Web API - 您可以为服务使用反向代理和动态端口分配:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reverseproxy

如果使用远程服务 - 只需使用动态端口。

对于与集群的外部通信 - taka 看这里:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reverseproxy#special-handling-for-port-sharing-services

保持 "port number same in ServiceManifest.xml file for both the Microservices."

只需针对不同的服务使URL不同

例如 localhost:8100/service1/....
localhost:8100/service2/....

"Different appRoot for different services"