Thrift【RPC】

Thrift【acwing】

game游戏端
match用户匹配端
匹配结果存储端

game游戏端
● add用户
● remove用户

● 匹配系统【生产者消费者模型】
● 数据存储系统
● game端
game 端选择增加||删除用户, 然后匹配系统维护Task任务队列,
在队列里面进行对手匹配,匹配成功则保存到数据存储系统中
game端和匹配系统交互
● add_user
● delete_user

匹配系统【cpp】
● 编译 g++ -c
● 链接【thrift的动态链接库】 g++ *.o -o main -lthrift【thrift的动态链接库】 -pthread【多线程的链接库】
● 读用户、删用户:多个线程
● 任务队列【多线程add 、 remove】
○ 用户进来之后,开一个线程进行匹配。
○ 匹配系统的玩家匹配过程【生产者 消费者模型】
○ 锁机制
○ 条件变量:查询机制不满足,让线程休眠
● 玩家池【单个线程操作玩家池】【while循环一直处理任务队列】【使用条件变量:查询机制不满足,让线程休眠(拿到任务队列的锁)】

game 系统【Python】

● 用thrift生成文件之后
● *-remote文件是S端, 删除
● 然后创建client.py

数据存储系统【Golang】
● 匹配成功之后
● 作为C端调用S端的数据存储


版权声明:本文为qq_43716912原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。