蘑菇街TeamTalk服务端分析

来源:互联网 发布:linux mysql安装详解 编辑:程序博客网 时间:2024/04/28 01:42




login_server:均衡负载服务器,用来通知客户端连接到负载最小的msg_server (1台)。

msg_server:客户端连接服务器(N台)。客户端通过msg_server登陆,保持长连接。

route_server:消息中转服务器(1台)。

DBProxy:数据库服务,操作数据库(N台)。


消息收发流程:

msg_server启动时,msg_server主动建立到login_server和route_server的长连接。

客户端登陆时,首先通过login_server 获取负载最小的msg_server。连接到msg_server。登陆成功后,msg_server发消息给route_server,route_server记录用户的msg_server。与此同时,msg_server发送消息给login_server,login_server收到后,修改对应msg_server的负载值。 


客户端消息发送到msg_server。msg_server判断接收者是否在本地,是的话,直接转发给目标客户端。否的话,转发给route_server。

route_server接收到msg_server的消息后,获取to_id所在的msg_server,将消息转发给msg_server。msg_server再将消息转发给目标接收者。


数据库操作:

消息记录,获取用户信息等需要操作数据库的,由msg_server发送到db_server。db_server操作完后,发送给msg_server。

0 0
原创粉丝点击