游戏服务器设计

本文深入解析游戏服务器架构,包括gateserver、dbserver、gameserver、deliveryserver和logserver的功能与线程模型。探讨了单线程与多线程的应用场景,以及数据队列、事务操作、玩家逻辑处理和日志收集的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程模型

  1. 多个线程对应同一个数据队列
  2. 每个线程对应一个数据队列,可以让一类操作全部放到同一个线程
  3. 单线程

gateserver

  1. 客户端所有交互都与gateserver进行
  2. 可以做成永久,与具体游戏项目无关

dbserver

  1. 处理数据存储和读取
  2. 使用rocksdb进行封装
  3. 采用事务操作:要么全部成功,要么全部撤销
  4. db底层已经在key级别加锁了
  5. db服务器可以封装成类似于redis的永久性,不需要新代码维护。(PS:难点是合服,可以考虑提供统一接口,由外部实现这些接口)

gameserver

  1. 处理玩家私有逻辑,可考虑分线,部署多个gameserver
  2. 同一个玩家的所有在操作在同一个线程进行
  3. 线程模型:多线程,每个线程一个数据队列。同一个玩家的交互全在同一个线程进行

deliveryserver

  1. 处理玩家公共逻辑:帮派、好友等等
  2. 线程模型:单线程,开发维护简单

logserver

  1. 所有其他服务器的日志发到logserver,由logserver写文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值