• TeamTalk源码分析之服务端描述


    TTServer(TeamTalk服务器端)主要包含了以下几种服务器:

    • LoginServer (C++): 登录服务器,分配一个负载小的MsgServer给客户端使用
    • MsgServer (C++): 消息服务器,提供客户端大部分信令处理功能,包括私人聊天、群组聊天等
    • RouteServer (C++): 路由服务器,为登录在不同MsgServer的用户提供消息转发功能
    • FileServer (C++): 文件服务器,提供客户端之间得文件传输服务,支持在线以及离线文件传输
    • MsfsServer (C++): 图片存储服务器,提供头像,图片传输中的图片存储服务
    • DBProxy (C++): 数据库代理服务器,提供mysql以及redis的访问服务,屏蔽其他服务器与mysql与redis的直接交互

    系统结构图

    TeamTalk中用到了其他开源库,比如Google Protobuf、redis、log4cxx等。

    服务端流程

    服务端的启动没有严格的先后流程,因为各端在启动后会去主动连接其所依赖的服务端,如果相应的服务端还未启动,会始终尝试连接。不过在此,如果是线上环境,还是建议按照如下的启动顺序去启动(也不是唯一的顺序):

    1、启动db_proxy。

    2、启动route_server,file_server,msfs

    3、启动login_server

    4、启动msg_server

    那么我就按照服务端的启动顺序去讲解服务端的一个流程概述。
    第一步:启动db_proxy后,db_proxy会去根据配置文件连接相应的mysql实例,以及redis实例。
    第二步:启动route_server,file_server,msfs后,各个服务端都会开始监听相应的端口。
    第三步:启动login_server,login_server就开始监听相应的端口(8080),等待客户端的连接,而分配一个负载相对较小的msg_server给客户端。
    第四步:启动msg_server(端口8000),msg_server启动后,会去主动连接route_server,login_server,db_proxy_server,会将自己的监听的端口信息注册到login_server去,同时在用户上线,下线的时候会将自己的负载情况汇报给login_server.

    各个服务的端口号

    (ps:这里是按照新版TeamTalk部署教程上的设置的,不同设置会有不同结果^_^,详情见新版TeamTalk完整部署教程,注意:如果出现部署完成后但是服务进程启动有问题或者只有部分服务进程启动了,请查看相应的log日志,请查看相应的log日志,请查看相应的log日志,重要的事情说3遍。)

    服务

    端口

    login_server

    8080/8008

    msg_server

    8000

    db_proxy_server

    10600

    route_server

    8200

    http_msg_server

    8400

    file_server

    8600/8601

    参考

    1、新版TeamTalk完整部署教程(这个是完整部署教程,当时就是按照这个配置来的^_^)

    2、/TeamTalk(ps:官方貌似好久没更新了)

    3、google protobuf安装与使用(ps:TeamTalk中用到了protobuf)

  • 相关阅读:
    jquery,smarty,dedecms的插件思路------dede未实践
    从英语单词shell想到的
    php的特殊功能-----不是和其他语言比较
    php程序执行过程--非宏观和微观而是写的程序一行一行的路径----利用xdebug了解一段程序的执行过程----覆盖率
    系统找不到指定路径的可能原因,以及404
    dede内容页调用点击数
    firework压缩图片类似于GD库中压缩图片的思路
    dede二级导航与二级栏目 ----内容介绍二级导航
    翻转二进制码
    翻转数组
  • 原文地址:https://www.cnblogs.com/luoxn28/p/5348649.html
Copyright © 2020-2023  润新知