Signalr 具有扩展功能的信号服务器广播

Signalr 具有扩展功能的信号服务器广播,signalr,signalr.client,signalr-backplane,Signalr,Signalr.client,Signalr Backplane,我们已经阅读了两个相互竞争的设计 简言之,我们拥有的是跨多个服务器网络的多个应用程序,通过信号器在多台机器上向多个浏览器广播事件/消息重要的是浏览器/客户端从不直接连接到应用程序。所有客户端都连接到服务器,服务器的唯一责任是接收来自服务器应用程序的消息,并将其代理到连接的客户端-这些被称为“消息到客户端代理服务器” 这两种方法是: 所有服务器都会将消息放到SignalR Hub上,而SignalR横向扩展后窗格会将这些消息分发给所有客户端代理服务器,客户端代理服务器会将消息向下推送到浏览器

我们已经阅读了两个相互竞争的设计

简言之,我们拥有的是跨多个服务器网络的多个应用程序,通过信号器在多台机器上向多个浏览器广播事件/消息重要的是浏览器/客户端从不直接连接到应用程序。所有客户端都连接到服务器,服务器的唯一责任是接收来自服务器应用程序的消息,并将其代理到连接的客户端-这些被称为“消息到客户端代理服务器”

这两种方法是:

所有服务器都会将消息放到SignalR Hub上,而SignalR横向扩展后窗格会将这些消息分发给所有客户端代理服务器,客户端代理服务器会将消息向下推送到浏览器

   APP SERVER    === >   AZURE SERVICE-BUS
                        (SignalR BackPane)
                                |
                                |
                                |
                                |\=== >    PROXY SERVER   ===  >  WEB CLIENT
                                |        (SignalR Server)      (SignalR Client)
                                |
                                |
                                |
                                |
                                |\=== >    PROXY SERVER   ===  >  WEB CLIENT
                                |        (SignalR Server)      (SignalR Client)
                                |
                                |
                                |
                                |
                                 \=== >    PROXY SERVER   ===  >  WEB CLIENT
                                         (SignalR Server)      (SignalR Client)
   APP SERVER    === >   PROXY SERVER    === >   AZURE SERVICE-BUS
(SignalR Client)       (SignalR Server)         (SignalR BackPane)
                                                         |
                                                         |
                                                         | 
   WEB CLIENT    < ===   PROXY SERVER   < ==============/|
(SignalR Client)       (SignalR Server)                  |
                                                         |
                                                         |
   WEB CLIENT    < ===   PROXY SERVER   < ==============/|
(SignalR Client)       (SignalR Server)                  |
                                                         |
                                                         |
   WEB CLIENT    < ===   PROXY SERVER   < ===============/
(SignalR Client)       (SignalR Server)
所有服务器都使用singalR客户端连接到message to client代理服务器,通过signalR客户端将消息直接推送到单个message to client代理服务器,然后将消息推回到signalR scale out backpane message to client代理服务器,然后将所有消息推送到浏览器

   APP SERVER    === >   AZURE SERVICE-BUS
                        (SignalR BackPane)
                                |
                                |
                                |
                                |\=== >    PROXY SERVER   ===  >  WEB CLIENT
                                |        (SignalR Server)      (SignalR Client)
                                |
                                |
                                |
                                |
                                |\=== >    PROXY SERVER   ===  >  WEB CLIENT
                                |        (SignalR Server)      (SignalR Client)
                                |
                                |
                                |
                                |
                                 \=== >    PROXY SERVER   ===  >  WEB CLIENT
                                         (SignalR Server)      (SignalR Client)
   APP SERVER    === >   PROXY SERVER    === >   AZURE SERVICE-BUS
(SignalR Client)       (SignalR Server)         (SignalR BackPane)
                                                         |
                                                         |
                                                         | 
   WEB CLIENT    < ===   PROXY SERVER   < ==============/|
(SignalR Client)       (SignalR Server)                  |
                                                         |
                                                         |
   WEB CLIENT    < ===   PROXY SERVER   < ==============/|
(SignalR Client)       (SignalR Server)                  |
                                                         |
                                                         |
   WEB CLIENT    < ===   PROXY SERVER   < ===============/
(SignalR Client)       (SignalR Server)
应用服务器===>代理服务器===>AZURE服务总线
(信号器客户端)(信号器服务器)(信号器后面板)
|
|
| 
WEB客户端<==代理服务器<==============/|
(信号器客户端)(信号器服务器)|
|
|
WEB客户端<==代理服务器<==============/|
(信号器客户端)(信号器服务器)|
|
|
WEB客户端<==代理服务器<===============/
(信号器客户端)(信号器服务器)

我们之所以要解决这个问题,是因为所有的示例都假设发出消息的应用程序/服务器也允许客户端连接到它们。。。这绝对不是我们的情况。

你到底在问什么?你想得到两个senarios中任何一个的设计建议吗?如果我正确理解了这些场景,您基本上是在问集线器应该在“代理”服务器上还是在“应用”服务器上,对吗(如果我误解了这一点,请解释场景(1)中集线器的位置在哪里)?在场景1中,集线器的位置在前端服务器上,不在应用服务器上-我们将使用信号器客户端向集线器发送消息。在场景2中,中心位于应用服务器上的应用程序内。我们正在寻找推荐的模式。正如你所看到的,关于如何解决服务器广播的基本问题,我们提出了两个相互竞争的想法。很抱歉,我需要纠正我自己。在场景2中,集线器位于前端服务器上,在场景1中,集线器位于应用程序中,现在您的问题更新了,我的答案中的部分不再有效。关于你的评论,我并不完全同意,但我认为讨论它们没有意义(因为答案的基础不再有效)。因此,我将完全删除我的答案。关于您的更新设计,场景(2)似乎与您的评论相矛盾,“在场景2中,中心位于应用程序服务器上的应用程序内”(您的图片写的是“应用程序服务器(信号器客户端)”,而不是服务器(如果它是“中心”,则应该是这样)。场景(1)也是如此。您的评论“在场景1中,集线器位于应用程序内”与第一个原则“应用程序服务器(信号客户端)”相矛盾。