对的,OICQ其实对服务器的压力比WEB要小得多,首先只有登录、注册、服务器中转消息等时候才需要与服务器联系,并且与服务器联系也是象HTTP一样连接、通讯、断开,真正同时使用服务器的并不多。
OICQ登录的时候确实可以选择不同的IP,如果这些IP映射的是不同的机器,那么这些机器之间的在线人员信息同步是算法反而复杂,我不知道OICQ是怎样处理的。
我自己写了一个类似OICQ的东西在系统内使用,我的多个服务器是通过用中心服务器交换数据的方法实现数据同步的,并不是真正的分布式系统。各服务器都相当于是中心服务器的缓冲服务器,当服务器严重登录信息的时候,如果改用户账号信息已经在本地就直接验证,验证失败或者不存在的时候就向中心服务器请求更新该用户账号数据。当用户登录的时候就把用户在线状态改变的信息报告中心服务器。最后发现这些服务器之间的信息交互太平凡,现在已经在修改,所有用户直接连接中心服务器,边界服务器只是简单的转发(相当于代理)