题目描述 游戏很多服务—匹配系统 不同服务在不同服务器上,不同服务器之间通信用thrift( rpc框架 远程函数调用)
一)
1)其他知识点 抽象 支持非常多语言
2)多线程 加锁 cpp编译 原理
3)百度 不难
4)恢复出厂设置 数据 不会丢
二)thrift 非常重要的应用
1.基本概念
homework 4 getinfo
不止一个服务
多个服务
分配到不同服务器上
微服务
写了一个game 运行到一个服务器,匹配自己的对手-----------匹配服务 (写一个服务 游戏客户端 游戏后台 匹配系统)
3个节点 + 1:thrift 接口文件夹
匹配系统节点 cpp (服务端 match-server)Ac Terminal 可以让 客户端调用我的函数
游戏节点 python (客户端 match-client 和 save client:同时实现两个需求,其他应用也可以酱紫~)Ac Terminal
数据存储 (已经帮助我们实现)------My server 端口:9090
游戏节点 到 匹配节点 一条有向边
为了方便用两个不同的文件夹表示两个不同的节点-------两个节点可以放到不同服务器上
画图学乱服务
thrift 接口文件夹
1.如何实现?
a.自己定义一个添加玩家 删除玩家的接口。教程看官网tutorial.thrift
用户名
定义结构体定义传输用户信息 i32表示int
定义函数 传一个额外信息多么重要,不用更改接口,可以把额外信息放到info 序列化jason
定义类?看文档细节
在git上看代码更清晰
如何用接口实现具体节点?
1)先去实现服务端 官网 教程 cpp
src 文件夹 放置 源文件
2)
匹配系统功能*3 (匹配 评测 都可以)
1.匹配系统添加一名玩家(add_user函数)-----数据存储服务器(应用模型 游戏模型)
2.匹配系统删除玩家(remove_user函数)
3.分数相近的玩家安排一起 安排一局游戏
匹配结果写到另一个服务器上
thrift 有向边
结点 进程 不同语言实现
根据定义的接口实现对应的请求操作
1.定义接口
2.服务端 server
3.请求client
rpc框架 远程函数调用 调用另外一个服务器的函数
acgit支持markdown 语法
接口生成之后,使用接口生成cpp版本的服务器:看官网 tutorial cpp
进入 match_system mkdir src 源文件
方便 改名 match_server只定义好接口,但是业务逻辑没有定义
先编译跑通,然后逐步往里添加模块
cpp 编译需要两步:
1)编译 g++ -c file.cpp match_server/*.cpp
2)链接g++ *.o -o main -lthrift