TeamTalk 服务器--配置
来源:互联网 发布:物业管理需求什么软件 编辑:程序博客网 时间:2024/06/08 15:11
TeamTalk 服务端分析 二、配置
前言
近期由于忙于工作,还有些纠结个人的事情,本来说好的本文,不得不拖到今天才写。
配置说明
在此,为了便于说明,我们做如下约定:
Name 内网IP 外网IP(IP1/IP2) InstanceC1 192.168.1.101 1.2.3.1/5.6.7.1 login_server1C2 192.168.1.102 1.2.3.2/5.6.7.2 login_server2C3 192.168.1.103 1.2.3.3/5.6.7.3 msg_server1C4 192.168.1.104 1.2.3.4/5.6.7.4 msg_server2C5 192.168.1.105 1.2.3.5/5.6.7.5 route_server1C6 192.168.1.106 1.2.3.6/5.6.7.6 route_server2C7 192.168.1.107 1.2.3.7/5.6.7.7 file_serverC8 192.168.1.108 1.2.3.8/5.6.7.8 msfsC9 192.168.1.109 1.2.3.9/5.6.7.9 db_proxy
db_proxy 开启两个实例,分别监听10200与10201两个端口。所有的服务端都在一个内网里面。
配置中的X代表数字。
1、login_server
可以简单的把login_server理解成为一个负载均衡服务器。msg_server在启动的时候会将自己监听的ip,port注册到告知login_server,当有用户登录或登出到msg_server的时候,msg_server会通知login_server进行变更,当用户通过login_server请求msg_server的ip与port的时候,login_server通过一个简单的规则,给出负载相对较小的msg_server回复给用户。
login_server的配置:
ClientListenIP= ClientPort=MsgServerListenIP=MsgServerPort=
ClientListenIP 这个是用来配置login_server监听的IP地址,供客户端连接时候的IP,如果希望监听所有的IP则填写0.0.0.0。如果监听多个IP,可以使用";"来分割,比如:1.2.3.1;5.6.7.1 这样就会监听同时监听这两个IP。
ClientPort 这个是用来配置login_server监听的Port
MsgServerListenIP 这个是用来配置login_server与msg_server通信用的IP。这个配置建议使用内网地址(如果login_server与msg_server在同一个内网的话),同样可以使用";"来分割监听多个IP。
MsgServerPort 这个是用来配置login_server与msg_server通信的端口。
配置例子1:
ClientListenIP= 1.2.3.1;5.6.7.1 ClientPort=80MsgServerListenIP=192.168.1.101MsgServerPort=8100
配置例子2:
ClientListenIP= 1.2.3.2;5.6.7.2 ClientPort=80MsgServerListenIP=192.168.1.102MsgServerPort=8100
2、msg_server
msg_server的配置相对来说比较复杂,该服务端也是最复杂的一个,其与login_server,route_server,db_proxy保持通信。其负责整个TeamTalk的整个核心通信功能。
msg_server的配置:
ListenIP=ListenPort=HttpListenIP=HttpListenPort=ConcurrentDBConnCnt=DBServerIPX=DBServerPortX=LoginServerIPX=LoginServerPortX=RouteServerIPX=RouteServerPortX=FileServerIPX=FileServerPortX=IpAddr1= IpAddr2= MaxConnCnt=
ListenIP 这个是用来配置msg_server监听客户端连接的IP,供客户端连接的时候使用,同login_server一样,如果希望监听所有的IP,可以配置为0.0.0.0,如果监听多个IP,可以使用";"分割。ListenPort 这个是用来配置msg_server监听的Port。HttpListenIP:HttpListenPort是使msg_server拥有http的功能。ConcurrentDBConnCnt 这个是配置与db_proxy的连接的并发。会于下面的四个配置一起使用。LoginServerIPX与LoginServerPortX用来配置与login_server通信用。
RouteServerIPX与RouteServerPortX用来配置与route_server通信用。IpAddr1 与 IpAddr2用来向login_server 发送自己监听的IP。保持与ListenIP一致。MaxConnCnt 用来告知login_server自己最大接受多少个连接并发。
配置例子1:
ListenIP=1.2.3.3;5.6.7.3ListenPort=443HttpListenIP=1.2.3.3;5.6.7.3HttpListenPort=80ConcurrentDBConnCnt=2DBServerIP1=192.168.1.109DBServerPort1=10200DBServerIP2=192.168.1.109DBServerPort2=10201LoginServerIP1=192.168.1.101LoginServerPort1=8100LoginServerIP2=192.168.1.102LoginServerPort2=8100RouteServerIP1=192.168.1.105RouteServerPort1=8400RouteServerIP2=192.168.1.106RouteServerPort2=8400FileServerIP1=192.168.1.107FileServerPort1=8500IpAddr1=1.2.3.3IpAddr2=5.6.7.3MaxConnCnt=100000
配置例子2:
ListenIP=1.2.3.4;5.6.7.4ListenPort=443HttpListenIP=1.2.3.4;5.6.7.4HttpListenPort=80ConcurrentDBConnCnt=2DBServerIP1=192.168.1.109DBServerPort1=10200DBServerIP2=192.168.1.109DBServerPort2=10201LoginServerIP1=192.168.1.101LoginServerPort1=8100LoginServerIP2=192.168.1.102LoginServerPort2=8100RouteServerIP1=192.168.1.105RouteServerPort1=8400RouteServerIP2=192.168.1.106RouteServerPort2=8400FileServerIP1=192.168.1.107FileServerPort1=8500IpAddr1=1.2.3.4IpAddr2=5.6.7.4MaxConnCnt=100000
3、route_server
route_server比较简单,就是用来转发msg_server的消息。同时用来保持各个用户的状态以及该用户在哪个msg_server上。
route_server配置:
ListenIP=ListenMsgPort=
ListenIP:ListenMsgPort 是用来配置与msg_server通信用的。
配置例子1:
ListenIP=192.168.1.105ListenMsgPort=8400
配置例子2:
ListenIP=192.168.1.106ListenMsgPort=8400
4、msfs
这个是小文件存储系统,主要是用来保存用户头像以及聊天中产生的图片、语音等小文件。msfs 提供的一个简单的http服务。
msgs 配置:
ListenIP=ListenPort=BaseDir=FileCnt=FilesPerDir=GetThreadCount=PostThreadCount=
ListenIP:ListenPort 的含义与之前各个服务端的配置意义相同。BaseDir 是msfs保存文件的路径,msfs在启动的时候,会在该目录下产生256个目录,每个目录下面再产生256个子目录。FileCnt用来记录已经存储的文件数目,该配置在msfs关闭的时候会被程序重写。FilesPerDir每个目录下面最多保存多少个小文件,GetThreadCount获取小文件的线程数目,PostThreadCount上传小文件的线程数目。建议GetThreadCount + PostThreadCount = 内核数目,GetThreadCount >= PostThreadCount。
所以msfs总共可以存储的文件数目为:256*256*FilesPerDir
配置例子1:
ListenIP=1.2.3.8;5.6.7.8ListenPort=80BaseDir=./tmpFileCnt=0FilesPerDir=30000GetThreadCount=6PostThreadCount=2
5、file_server
file_server的功能是提供给用户传输文件使用。同时也存储用户传输的离线文件。
file_server配置项:
Address=ListenPort=TaskTimeout=
Address:ListenPort与上述服务端的IP:Port的意义一样,供与客户端通信用。TaskTimeout用来配置文件传输时效。
配置例子1:
Address=192.168.1.107ListenPort=8500TaskTimeout=60
以上是c++各个服务端的配置项,配置完成后整个TeamTalk的部署如下(其中虚线代表tcp短连接,实线代表tcp长连接):
- TeamTalk 服务器--配置
- TeamTalk服务器
- TeamTalk服务器搭建
- CentOS部署TeamTalk服务器
- TeamTalk服务器的学习1
- TeamTalk--消息服务器的轮训
- TeamTalk--登陆服务器的分析
- TeamTalk 服务端分析 二、配置
- teamtalk
- TeamTalk
- TeamTalk服务器布署-一键修改版
- 最快速的TeamTalk 服务器部署方
- TeamTalk消息服务器原理及二次开发简介
- TeamTalk消息服务器原理及二次开发简介
- 我的teamtalk学习历程 -- (1)安装,编译及配置
- TeamTalk源码分析(十) —— 开放一个TeamTalk测试服务器地址和几个测试账号
- teamtalk 笔记
- Teamtalk简介
- JavaOOP二进制的读取写入
- GPU计算能力和性能指标
- 寄存器、注入和Hook结构图
- java数据库-JDBC
- GDOI模拟4.11~4.13总结
- TeamTalk 服务器--配置
- Effective java笔记-通用程序设计
- 进程间通信方式总结——信号量
- 百宝云表单系统
- 把图片从网络加载之后计算原始图片的宽和高 一直得到的图片宽和高为0
- java端口抢占问题
- day47_maven
- css实现垂直居中
- 调试结构图