是否可以仅通过重新配置路径名将 Azure 服务总线队列迁移到主题和订阅?
是否需要更改任何代码?
如果我保持名称相同,第 3 方是否必须更改他们的代码?
是否可以仅通过重新配置路径名将 Azure 服务总线队列迁移到主题和订阅?
是否需要更改任何代码?
如果我保持名称相同,第 3 方是否必须更改他们的代码?
不,如果您尝试使用 发送到主题,QueueClient
您将收到异常:
System.InvalidOperationException: 'Cannot open a Queue client for entity type Topic.'
同样,尝试从订阅接收将导致异常:
Microsoft.Azure.ServiceBus.MessagingEntityNotFoundException: Put token failed. status-code: 404, status-description: The messaging entity 'sb://ns.servicebus.windows.net/subscription' could not be found.
对于发送,您需要用具有相同构造函数QueueClient
的 a替换。TopicClient
对于接收,您将不得不使用SubscriptionClient
需要主题以及订阅名称的 which(所以调用构造函数的一个小改动)。
QueueClient
并且TopicClient
都继承自ClientEntity
,但ClientEntity
没有定义任何虚拟或抽象SendAsync()
方法,因此要使任何东西真正通用并不容易。
所需的代码更改很少,在我的情况下,我只需要更改客户端的构造函数和声明的类型。
所以是的,如果您决定迁移,第 3 方将不得不更改他们的代码......