microservices - 单个服务中的多个 FabricTransportServiceRemotingListeners

标签 microservices azure-service-fabric

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

相关文章:

azure - Docker微服务架构——不同容器之间的通信

node.js - 关于微服务架构的问题

azure - 如何使用 Key 以外的其他方式查找有状态服务的数据

c# - Service Fabric Actor 状态就像一个队列

spring-boot - 微服务无法访问 Elasticsearch Image

java - 如果生产者位于不同的服务中,使用 Reactor Kafka,消费者是否可以减慢生产者的速度?

java - 如何设计基于微服务的应用程序,每个微服务都有自己的数据源?

c# - Microsoft Service Fabric 主机服务 (FabricHostSvc) 在启动时挂起

azure - 从 Internet 访问 Service Fabric

azure-service-fabric - Azure Service Fabric - 当消息到达 Azure 存储队列时触发服务/Actor