1、分布式id
游戏服务器里的大部分数据都是要求全局唯一的,例如玩家id,道具id。之所以有这种要求,是因为运营业务上需要进行合服操作,保证不同服的数据在进行合服之后,也能保证id不冲突。如果采用关系型数据库(例如mysql),常见的分布式id算法有以下方法。
- 分段步长:把long型数字的前N位标记为区服id,剩余的后面所有位用作计算器自增长,并把最大的id进行持久化。
- 雪花算法变种:将雪花算法与游戏区服、系统时间戳、计算器结合起来。
详情可参考: 游戏服务器框架之分布式id生成器
如果选择mongodb,由于其内置一个非常简单高效的分布式id生成算法,可以直接使用。不用业务代码自行设计。
详情可参考: Mongodb分布式id
2、数据库ddl自动化
目前,很多orm框架都不支持自动建表加字段(