新手教程系列
这个系列只走一条主线:
- 先看懂项目结构
- 再看启动链路
- 再看 MongoDB 数据链路
- 最后再动业务和改功能
这个系列是按“刚开始接触项目修改”的视角写的。
当前这套服使用的 MongoDB 版本是 4.4.30。
第一课:从一条日志落库看懂项目和 MongoDB
第一次接触这套项目时,最容易犯的错就是一上来就想把所有目录、所有服务、所有脚本一次看懂。
这样通常只会越看越散。第一课只做一件事:先顺着一条最短的数据链,把“业务代码 -> 数据库”这件事看实。
这一课先解决什么问题
第一课不讲花哨的功能,也不急着改数值。
先把下面 4 件事看明白:
- 这套项目的主战场在
/home/ubuntu/Game2
- 项目启动的是多个 Skynet 进程,不是单个 Lua 文件
- MongoDB 在这个项目里主要承担游戏数据和日志数据的存储
- 业务代码访问 MongoDB 不是直连,而是走
dbproxy -> simpledb -> dbenginer -> skynet.db.mongo
如果这 4 件事没看明白,后面无论是改登录、改场景、改角色,还是接 GM 工具,都会越看越乱。
先看到结果
第一课不用先背概念,先看一个结果:
- 业务代码里发给
.logdb 的数据,最后会进 MongoDB
.logdb 在这套项目里对应的是 logdb / tlbb_log
- 中间经过的是
dbproxy -> simpledb -> dbenginer -> skynet.db.mongo
只要先把这一条线看通,后面再看 .db、.char_db、启动链路、场景服务,就不会那么空。
先别怕这些英文名
第一次看到 dbproxy -> simpledb -> dbenginer -> skynet.db.mongo 这串名字时,发懵是正常的。
这里最重要的不是把英文单词硬背下来,而是先看清它们分别处在链路的哪一环。
可以先按下面这样记:
| 名字 |
可以理解成什么 |
作用 |
dbproxy |
分发员 |
把数据库请求分发给后面的多个 simpledb |
simpledb |
中转员 |
接一下请求,再转给真正干活的数据库层 |
dbenginer |
执行员 |
真正建立 Mongo 连接,执行增删改查 |
skynet.db.mongo |
驱动层 |
Skynet 提供的 MongoDB 底层驱动 |
第一遍看代码时,不需要去死记英文。
只要脑子里先有这 4 个环节,就已经够用了。
启动阶段这些英文名,先按用途理解
除了数据库链路,启动阶段也会碰到一批英文名。
第一遍看时,不要把它们当成抽象概念,先看清它们到底是“哪一类进程”或“哪一个服务”。
***付费内容***
剩余 82% 内容需要支付 200.00
金币 后可完整阅读
支持付费阅读,激励作者创作更好的作品。
|