游戏服务器之多进程架构通信
来源:互联网 发布:linux select timeout 编辑:程序博客网 时间:2024/05/18 02:04
http://blog.csdn.net/chenjiayi_yun/article/details/18891591
游戏服务器有时需要分多个进程来处理各种负载。多个进程之间的连接处理就相对复杂了。
1、服务器进程类型
(1)登陆服务器
创建账号,检验角色账号,选择和获取并返回网关信息。
(2)网关服务器
创建角色,转发消息。会有网关角色,和相关的屏信息,用于广播。
(3)场景服务器
处理场景(分线或不分线的)、副本的游戏逻辑。
(4)社会关系服务器
处理社交相关的全区的逻辑。
(5)数据库服务
存取数据。
(6)中心服务器
处理内部服务器之间的消息转发,和某些转发流程控制。
(7)其他服务器
还有些日志服务器、连接PHP(gm)服务器、跨服战服务器、聊天服务器等。
2、进程内的网络相关线程类型
进程内的网络相关线程类型(不包括主线程和逻辑线程),处理进程间通信需要处理的连接的数据发送和接收。
<1>、被动连接相关
被动连接线程池
(1)验证线程
(1-1)检查验证超时、验证发来消息的服务器id和服务器ip(服务器之间,依靠中心服务器发来的依赖服务器列表)
(1-2)验证账号和临时id和账号(客户端登陆和重登陆)
(1-3)验证epoll接收是否有错误,验证客户端的唯一性,超时就放到回收线程
(2)同步线程
(2-1)网关发消息删除中心服务器登陆会话
(2-2)中心服务器读数据库检查其他服务器连接的合法性
(2-3)发送测试消息到对端
(3)网络接收发送线程
负责发送和接收数据(多线程,数量需要配置,每条线程处理的连接数需要是动态增长的)
(4)回收线程
回收连接
<2>主动连接相关
(1)主动连接线程
根据进程需要主动连接别的进程来增加。
如场景进程需要主动连接中心服务器、社会关系服务器、网关服务器、日志服务器、数据库服务器,所以分别各自要另起连接线程。
(2)主动连接线程池
(2-1)连接测试线程
测试连接是否正常
(2-2)验证线程
(2-3)网络处理线程
负责发送和接收数据(多线程,数量需要配置,每条线程处理的连接数需要是动态增长的)
3、进程间的连接图
- 游戏服务器之多进程架构通信
- 游戏服务器之多进程架构通信
- 游戏服务器之多进程架构通信
- 游戏服务器之多进程资源框架图(手游版)
- 【服务器架构】多进程的游戏服务器设计
- 游戏服务器之多线程发送
- 游戏服务器之多对象分配器
- 服务器之多进程VS多线程
- linux之多线程fork:进程通信
- 游戏架构其二:游戏通信
- 游戏服务器之多线程的会话管理
- linux高性能服务器编程之多进程
- 游戏服务器架构探讨
- QQ游戏服务器架构
- 游戏服务器架构探讨
- 游戏服务器架构简述
- 游戏服务器架构
- 游戏服务器架构探讨
- csu1783——聊天止于呵呵(字符串)
- OpenLayers从入门到放弃(1)
- 总结mybatis基础知识
- 初探Android的PMS服务
- 线程池基础类_ThreadPoolExecutor (JDK1.8)
- 游戏服务器之多进程架构通信
- 嵌入式应用软件开发学习框架
- python 下载证券数据
- uboot实验
- 一些基于 D3.js 的图表库
- (x.compareTo(y)==0) == (x.equals(y))
- 剑指offer-面试题18-树的子结构
- LeetCode : Add Binary
- 工业相机标定相关知识整理