1

我已经使用 SQL Server文档查看了 SignalR 中的 Scaleout 简介和SignalR Scaleout 的介绍,但是关于它的实际工作原理,我有一些令人困惑的事情。

  1. 背板如何识别所有连接到它的服务器?有没有办法从背板获取连接的服务器列表?
  2. 如果两台服务器有两个不同的 dns 名称(例如:- abc.com 和 123.com)但连接到同一个 sql 背板,消息是否也会发送到这些不同的 dns 服务器?. 如果是这样,如果客户端连接到 abc.com 但请求发送到 123.com,是否会通过 abc.com 传递给客户端?
  3. 在文档中,它说所有服务器都将消息保存在其本地缓存中。有没有办法知道特定服务器收到了这条消息,以便我们可以在某个地方记录它?
4

1 回答 1

3
  1. 在这种情况下,背板是 SQL Server,当服务器连接到背板时,它正在建立一个 sql 连接,并且 SQL 知道谁连接了,例如使用 sp_who 存储过程。
  2. 这取决于您如何发送消息。如果服务器正在向所有客户端发送消息并且它连接到背板,则消息首先进入背板,然后每个连接的服务器拾取消息并将其传递给其客户端。组中发生相同的过程,但服务器只会将消息发送给组中的客户端。
  3. 我无法找到一种方法来拦截服务器从背板获取消息并将其传递给客户端之间的消息。所以我认为没有办法记录这个。如果你找到方法让我知道。
于 2017-05-11T19:48:12.113 回答