在同一个URI上托管两个servicebus是可以接受的



我很难理解如何使用服务总线在同一URI上的两个不同主机上托管同一服务。从本质上讲,这就是我们托管服务的方式。

    try
        {
            uri = ServiceBusEnvironment.CreateServiceUri(UriSchemeSb, this.serviceBusDescriptor.ServiceNamespace, servicePath);
            host = new ServiceHost(serviceType);
            host.AddServiceEndpoint(interfaceType, this.relayBinding, uri);
            AddSharedSecretServiceBusCredentialBehavior(host, this.serviceBusDescriptor.IssuerName, this.serviceBusDescriptor.IssuerKey);
            this.host.Open();
        }
        catch (SecurityTokenException exception)
        {
            this.host.Abort();
            this.host = null;               
        }

可能有两个主机具有相同的servicePath,并且两个服务都托管在同一个URI上。

我以为会抛出一些异常,但事实似乎并非如此。我是否误解了什么,或者在托管的每个服务的URI中都有一个新生成的guid是预期的行为?

除了在托管服务之前测试URI之外,还有其他建议吗?

在这种情况下,您使用的是服务总线的负载平衡功能。您可以让多个主机托管同一个端点(每个端点最多20个侦听器),这在高负载场景(循环方式)或高可用性场景(一个主机停机,另一个继续处理)中可能是有益的希望这有道理?

相关内容

  • 没有找到相关文章

最新更新