关于MMO游戏服务器的思考 - 沉迷于学习,无法自拔^_^

https://zhuanlan.zhihu.com/p/266573590

https://github.com/mikai233/antares

CppGuide/articles/游戏开发专题/4关于游戏服务端架构的整理.md at master · balloonwj/CppGuide

https://skywind.me/blog/archives/2719

codedump的网络日志

https://github.com/gonglei007/GameDevMind/tree/main?tab=readme-ov-file

腾讯游戏4名技术专家详解:《御龙在天移动版》服务器性能优化 - GameRes游资网

宝藏

https://github.com/landon30/Bulls?tab=readme-ov-file

akka游戏框架

https://juejin.cn/post/7458548238276853798

java游戏框架

https://github.com/jwpttcg66/NettyGameServer?tab=readme-ov-file

百万游戏

https://zhuanlan.zhihu.com/p/341855913

https://www.zhihu.com/column/codingart

热更新

设计模式

偷产出方法论

对于一些已经稳定运营有些年头的游戏,活动系统是最好编的,如果资料不是很多,可以参考电商的用户增长

业务。

1
2
3
4
5
<窗口函数>(<参数>) OVER (  
[PARTITION BY <分区表达式>]
[ORDER BY <排序表达式> [ASC | DESC]]
[ROWS/Range <窗口范围>]
)

partion

空间换时间的思想

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
easSeniorAnalresultClazzStuRankMapper.cursorRankStudentsByClazz(clazzIds, ORIGINAL_SCORE_TYPE, resultContext -> {
EasSeniorAnalresultClazzStuRank row = resultContext.getResultObject();
buffer.add(row);
if (buffer.size() >= BATCH_SIZE) {
this.saveBatch(buffer);
buffer.clear();
}
});
/**
* 根据班级ID列表查询班级排名和年级排名
* 流式查询
* @param clazzIds 班级ID列表
* @return 班级排名和年级排名列表
*/
@Options(resultSetType = ResultSetType.FORWARD_ONLY, fetchSize = 1000)
@ResultType(EasSeniorAnalresultClazzStuRank.class)
void cursorRankStudentsByClazz(@Param("clazzIds") List<Long> clazzIds, @Param("score_type") Integer scoreType, ResultHandler<EasSeniorAnalresultClazzStuRank> handler);

和分页查询有什么区别吗

docker volume create 数据卷名称 创建一个数据卷

docker volume inspect 数据卷名称 显示数据卷信息

docker volume ls 查看所有数据卷

docker volume prune 删除未使用的数据卷

docker volume rm 数据卷名称 删除一个或多个指定的数据卷

数据卷默认路径:/var/lib/docker/volumes

docker ps (-a) 查看(所有)容器状态

docker rm (-f) 容器id (强制)删除容器

docker run 参数 镜像名称 (/bin/bash) 创建并运行一个容器

–name 容器名称 给容器取个名称

–restart=always docker重启时容器自动重启

–privileged=true 赋予容器几乎与主机相同的权限

-p 81:80 将宿主机端口81映射到容器端口80

-i 打开容器标准输入,即能输入

-t 分配一个伪终端绑定到容器的标准输入,即会在输入行前显示信息

-d 后台运行容器

-v 数据卷名字:容器内路径 将数据卷与容器内路径挂载

-e 环境变量名=值 设置环境变量

–rm 临时容器,退出后自动删除

docker exec 参数 容器名称 bash 进入容器

-i 打开容器标准输入,即能输入

-t 分配一个伪终端绑定到容器的标准输入,即会在输入行前显示信息

-d 后台运行容器(exec一般是进入运行中的容器,所以不使用这个,一般是-it)

docker stop 容器名称 停止容器

docker start 容器名称 启动容器

docker restart 容器名称 重启容器

docker rm 容器名称 删除容器

docker inspect 容器名称 查看容器信息

docker update –restart=no 容器名称 更新容器信息,如关闭自启动