c# - 缩放时 Azure 服务总线唯一订阅名称

标签 c# .net azure azureservicebus azure-web-app-service

我有一个场景,我是 Azure 服务总线中的主题和订阅。该网站创建对主题的订阅。创建网站的另一个实例时,我想创建一个具有同一主题的唯一名称的新订阅。最好的方法是什么。该网站作为 azure 中的 Web 应用程序托管。

最佳答案

Azure 服务总线是一个代理,您的应用程序应该是一个竞争消费者(即同一队列的多个实例提要,因为这些只是您横向扩展的同一 Web 应用程序的实例)。话虽如此,有时您需要实现像回调这样的机制,通常用于与 Web 应用程序的特定实例进行通信,一直到客户端。为此,我建议不要考虑为每个 web 应用程序而不是每个实例创建订阅(可以使用 WEBSITE_INSTANCE_ID 作为唯一的订阅 ID 来完成)。正如 John 所评论的那样,每个实例订阅的问题在于,当您缩小规模时,与已取消配置的 webapp 实例的订阅关联的消息将保留在代理上而不进行处理。更不用说不断的扩展/缩小将生成孤立且不会被清理的订阅。

另一种方法是为每个 web 应用程序订阅并使用类似 SignalR with a backplane 将这些事件分发到特定实例。 ,这是专门为此目的而设计的。 SignalR 有多种底板实现(Redis、Azure ServiceBus、SQL Server)。

关于c# - 缩放时 Azure 服务总线唯一订阅名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38105115/

相关文章:

c# - 如何在 MVC3 View 中从 Markdown 文本中突出显示 C# 语法

asp.net - 我可以使用 owin 和 oauth 提供商的 asp.net 成员(member)资格吗?

azure - 更新 Azure 容器实例中的 docker 镜像

azure - 使用powershell覆盖ftp文件

c# - 集成测试和 TDD

c# - 进入角色受限网页时,ASP.NET 默认页面重定向

.net - WinForms:如何以编程方式触发事件处理程序?

c# - 如何处理 IObservers 被处置?

azure - 如何为静态 HTML 后备站点配置 Windows Azure Web 角色实例

c# - 来自类之间递归依赖的 System.StackOverflow 异常