gpt4 book ai didi

microservices - 单个服务中的多个 FabricTransportServiceRemotingListeners

转载 作者:行者123 更新时间:2023-12-01 12:26:37 26 4
gpt4 key购买 nike

我希望能够从集群内的单个无状态服务公开多个 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")
};
}

然而,当我对由第二个监听器实现的 ICategoryQueryService 进行代理时,抛出关于未实现接口(interface)方法的异常导致我相信第一个监听器错误地响应了所有 Proxy 调用.

"Interface id '740213831' is not implemented by object 'TaxonomyService.SqlCategoryCommandService'"

我正在使用以下代码创建代理:

var proxy = ServiceProxy.
Create<ICategoryQueryService>(new Uri("fabric:/Taxonomy/TaxonomyService"));

我描述的场景是否可能?

最佳答案

另一个用户早些时候正确回答了这个问题,但是出于某种原因它被 mod 删除了,所以为了后代:

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

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

关于microservices - 单个服务中的多个 FabricTransportServiceRemotingListeners,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38975554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com