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