首页 文章

直接通过不同Azure角色的横向扩展发送信号器消息

提问于
浏览
4

我在Azure Cloud 服务应用程序中有两个角色:一个Web角色(此处为信号器连接)和一个辅助角色 .

Web角色使用Azure服务总线作为其扩展提供程序 .

在某些时间点,工作者角色将发出某些事件 . 我想将这些数据直接发送给连接到Hub的客户端 .

我当前的实现涉及工作者角色将消息放置在Web角色订阅的服务总线队列上,然后Web角色通过HubContext调用将此消息转发给客户端 .

我的问题是:如何从工作者角色直接向连接的客户端发送此消息?到目前为止,我考虑了3种方法:

  • 将信号器配置为Web角色,以便它们使用相同的servicebus主题 . - 这不会像工作者角色实例那样工作“从用于Web角色的主题订阅中窃取消息” . 这似乎是最干净的方法,但配置是一个问题 .

  • 使用.Net客户端发送集线器消息 - 这并不理想,因为它会对Web角色施加不必要的负载,并且与上述方法相比,服务总线消息数量增加一倍 .

  • 手动编写与主题相关的信号兼容消息 - 非常hacky并且可以成功地破坏更改 .

我知道该团队目前正在为下一个版本重新调整扩展,但这在某些时候是否可行?

编辑:我注意到RabbitMq implementation支持这个 .

1 回答

  • 1

    我的配置似乎问题是第一种方法不起作用 . 然而,即使在循环中少了一条消息,似乎该方法的端到端速度较慢(大约150毫秒) .

    我将等待,看看在进行任何更改之前,横向扩展工作是否会对此方法进行任何改进 .

相关问题