Microservices 单个服务中的多个FabricTransportServiceRemotingListeners

Microservices 单个服务中的多个FabricTransportServiceRemotingListeners,microservices,azure-service-fabric,Microservices,Azure Service Fabric,我希望能够从集群中的单个无状态服务公开多个FabricTransportServiceRemotingListeners。我已尝试按如下方式注册侦听器: protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners() { return new[] { new ServiceInstanceListen

我希望能够从集群中的单个无状态服务公开多个FabricTransportServiceRemotingListeners。我已尝试按如下方式注册侦听器:

    protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
    {
        return new[]
        {
            new ServiceInstanceListener(
                serviceContext =>
                    new FabricTransportServiceRemotingListener(serviceContext, new SqlCategoryCommandService(), new FabricTransportListenerSettings()
                    {
                        EndpointResourceName = "CategoryCommandEndpoint"
                    }), "SqlCategoryCommandService"),

            new ServiceInstanceListener(
                serviceContext =>
                    new FabricTransportServiceRemotingListener(serviceContext, new SqlCategoryQueryService(), new FabricTransportListenerSettings()
                    {
                        EndpointResourceName = "CategoryQueryEndpoint"
                    }), "SqlCategoryQueryService")
        };
    }
我正在使用以下代码创建代理:

var proxy = ServiceProxy.
     Create<ICategoryQueryService>(new Uri("fabric:/Taxonomy/TaxonomyService"));
var proxy=ServiceProxy。
创建(新Uri(“结构:/Taxonomy/TaxonomyService”);

我所描述的场景可能吗?

另一个用户之前正确地回答了这个问题,但由于任何原因,它被一个mod删除了,所以为了后代:

这是可能的。创建服务代理时,只需指定侦听器名称:

var proxy = ServiceProxy.Create<ICategoryQueryService>(new Uri("fabric:/Taxonomy/TaxonomyService"), listenerName: "SqlCategoryQueryService");
var proxy=ServiceProxy.Create(新Uri(“结构:/Taxonomy/TaxonomyService”),listenerName:“SqlCategoryQueryService”);

我看到过类似的问题,以及多个听众的困惑。将名称设为必需参数而不是可选参数是否更有意义?我有多个侦听器—WcfCommunicationListener和SF的默认值。我尝试在默认情况下查找服务(不是Wcf),但当我调用一个方法时,它将从Wcf返回一个错误,就像我尝试通过Wcf查找服务一样。我无法使多个侦听器正常工作:yield return new serviceplicationlistener(context=>new fabrictTransportServiceRemotingListener(context,this)“读写通信侦听器”);返回新的ServiceReplicaListener(上下文=>new FabrictTransportServiceRemotingListener(上下文,this),“ReadOnlyCommunicationListener”);
var proxy = ServiceProxy.Create<ICategoryQueryService>(new Uri("fabric:/Taxonomy/TaxonomyService"), listenerName: "SqlCategoryQueryService");