我的工作人员使用服务总线主题将消息广播到我的所有 Web 实例。然后,每个 Web 实例负责使用 SignalR 将这些消息流式传输给连接的用户。
我的问题是 SignalR 还使用服务总线向连接的用户应用程序范围内显示它自己的消息(这很棒!)。因此,每个 Web 实例将来自工作人员的消息“重新转发”到服务总线,从而产生以下问题:1. 消息被流式传输 X 次到每个连接的客户端(X = Web 实例的数量)2. 有数十万个(最多每小时数百万)消息,并且每条消息通过服务总线 X+1 次(来自工作人员的 1 次 + 由于 SignalR 的 X 次),导致更多(无用的)服务总线成本
=> 我正在寻找一种方法来告诉 SignalR 只将特定消息流式传输到它自己连接的客户端,而不使用背板。使用 Queue 将消息从工作人员发送到 Web 实例而不是 Topic 部分解决了问题(消息只流式传输到客户端一次,但消息仍然通过服务总线两次)。
有什么解决办法吗?谢谢!