游戏服务器之服务器优化思路

本文只是提供一些游戏服务器优化思路,其中一些思路是用在不同场合的,不是同个架构的。需要根据应用场景选用合适方式。本文的引用的文章都是在自己写的在本博客内的,也都是上线开几百个服的成熟项目的。

 

一、框架设计优化

1、分静态服务器和动态服务器。

2、动态服务器使用两层负载均衡:多网关  和 多场景。网关的选择是登陆服务器根据网关的负载来选择。场景则作为分线和副本等分开。

框架图参考:http://blog.csdn.net/chenjiayi_yun/article/details/18891591

3、中心服务器负责服务器依赖检查和内部消息转发和控制登录流程。中心服务器会主动连接登陆服务器和后台服务器。其他服务器会主动连接中心服务器。中心服务器有主动连接和被动连接的管理器,可根据需求的服务器类型来查询需要的连接。

中心服务器参考:http://blog.csdn.net/chenjiayi_yun/article/details/19329287


二、业务设计优化

1、网络

多线程使用

方式一:网络被动连接线程池

被动连接线程池 http://blog.csdn.net/chenjiayi_yun/article/details/17793459

(1)动态线程调度

网络接收线程池的动态线程调度策略。接收发送网络使用多线程,每多增加512连接动态增加一条线程。

动态线程调度策略参考:http://blog.csdn.net/chenjiayi_yun/article/details/35922173

(2)网络收发处理优化

有读才可能有写(优先读)。使用单独的epoll描述符来处理读(读epoll描述符不处理写,另一个epoll描述符处理读和写)。每隔一段时间才写。写是检查写缓冲区。

(3)网络消息队列

读的是无锁队列。参考:http://blog.csdn.net/chenjiayi_yun/article/details/36190543

写会写缓存。使用发送字符队列,参考:http://blog.csdn.net/chenjiayi_yun/article/details/37933099

方式二:逻辑网关

(1)对于树状多网关对象的单逻辑服务器。读写线程使用不同线程。连包使用单独线程。监听连接使用单独线程。

逻辑网关对象参考:

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值