对于服务器的动态扩容,可以添加一个服务器类型(CenterServer),专门用来负责这个事情。
所有服务器进程起来后,初始化完毕先连接Center 由Center根据服务器连接规则把该服务器起来的数据广播给已经和Center保持连接的服务器。新起来的服务器总是被动接受连接请求。
这样一个Center服务器 只做扩容和一些全局进程控制等简单事情。压力自然是非常小。
Center本身的容灾。Center本身宕机对整个系统影响几乎没有,重新起来所有进程会重新连接,
Center本身的扩容。考虑到压力问题。可考虑采用集群方式来实现Center本身的扩容。(Center之间采用全互联 其他服务器进程只需要连接任何一个即可,Center集群内部相互广播消息,会比单个Center压力降低了许多
集群本身的性能消耗在随着压力上升消耗在集群内部的交互所占单个Center进程的比例越来越大,这种情况就可以考虑采用gossip算法来优化)每个Center节点功能都是一样的,只不过做了一条额外处理就是把自己收到的其他进程的起服消息广播给其他Center
这个是用来替代原来设计的redis-cluster pub-sub 扩容方案。