本文为非官方公报服务器结构,MSN Messenger服务器可以分为三类:Dispatch Server(DS)、Notification Server(NS)、Switchboard Server(SB)。 DS是Messenger登陆时首先连接的服务器。然后DS指定一个NS的IP返回给客户端,然后关闭连接。 

  Messenger接着连接到得到的NS IP地址,所有的操作信息,比如添加好友、删除好友,更名等等都是通过NS的这个连接完成。只要Messenger在线,该连接会一直保持。 如果要开始对话,发起人发送指定指令到NS,NS返回一个指定的SB IP,接受者会在其NS连接上也收到该SB IP的通知。然后双方均连接到该SB上进行对话,对话完成后关闭连接。
  

 

      (一)DS采用的负载均衡方式应该比较简单,通过DNS解析来做负载均衡。并且由于在DS 上的连接都是短连接,保持时间非常短,所以应该DS服务器的数量应该不会很多。 由于DS必须要返回一个可用的NS IP,那么内部应该还有其他种类的服务器来保存当前所有可用的NS服务器,以及这些NS服务器上的负载。通过DS这一层来为接下来的NS做负载均衡。 
  (二)NS连接均为长连接,所以在这一层上的负载由DS来调节。如果NS负载太大,新客户连接上DS时会返回其他相对空闲的NS服务器。当然NS服务器之间也有相互通讯的机制也是少不了的,比如上下线通知、对话发起等等。 
  (三)SB连接的时间介于NS和DS之间,其负载由NS来作控制。对话完成后和SB之间的连接就关闭了。不过由于所有的对话都在SB上进行,MS的服务器资源再强也会吃紧,所以现在新版的MSN Messenger都加入了P2P Message类型,在发起对话的时候会判断如果双方都支持P2P Message,则会直接点对点连接连接,绕过SB这一层。