找回密码
 register
搜索
查看: 76|回复: 0

洱海月 从一条日志落库看懂项目和 MongoDB

[复制链接]
  • 打卡等级:本地老炮
  • 打卡总天数:533
  • 打卡月天数:22
  • 打卡总奖励:530
  • 最近打卡:2026-06-24 01:45:59
Waylee 发表于 2026-3-18 09:56 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

新手教程系列

这个系列只走一条主线:

  • 先看懂项目结构
  • 再看启动链路
  • 再看 MongoDB 数据链路
  • 最后再动业务和改功能

这个系列是按“刚开始接触项目修改”的视角写的。
当前这套服使用的 MongoDB 版本是 4.4.30


第一课:从一条日志落库看懂项目和 MongoDB

第一次接触这套项目时,最容易犯的错就是一上来就想把所有目录、所有服务、所有脚本一次看懂。
这样通常只会越看越散。第一课只做一件事:先顺着一条最短的数据链,把“业务代码 -> 数据库”这件事看实。

这一课先解决什么问题

第一课不讲花哨的功能,也不急着改数值。
先把下面 4 件事看明白:

  1. 这套项目的主战场在 /home/ubuntu/Game2
  2. 项目启动的是多个 Skynet 进程,不是单个 Lua 文件
  3. MongoDB 在这个项目里主要承担游戏数据和日志数据的存储
  4. 业务代码访问 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 金币 后可完整阅读
支持付费阅读,激励作者创作更好的作品。
您需要登录后才可以回帖 登录 | register

本版积分规则

QQ|雪舞知识库 ( 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 )|天天打卡

GMT+8, 2026-6-24 06:38 , Processed in 0.061788 second(s), 26 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表