栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

thrift

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

thrift

前言

          学习 thrift 内容!

文章目录
  • 前言
  • 一、简介
  • 二、代码实现
    • 1、先定义接口
    • 2、通过接口实现匹配服务的服务器端
    • 3. 实现匹配服务的客户端

一、简介

thrift 又叫做 rpc 框架,即远程函数调用。微服务的概念

为什么?:当我们写一个应用的时候并不只有一个服务,可能会有多个服务,不同的服务运行在不同的服务器上,不同的服务器间通信用 thrift 通信。

例如:

其中每一个节点是每一个进程,不同的进程可以用不同的语言来实现

游戏客户端:玩家登录后,调用匹配系统的 add_usr 函数将玩家的信息传给匹配系统,remove_user 实现当玩家退出之后从匹配系统中删除玩家信息。

匹配系统:接受玩家,删除玩家,将分数相近的玩家匹配在一起,然后安排一场游戏,然后将匹配结果发给数据存储服务器

数据存储服务器:存储系统匹配的结果

thrift 的作用:某一服务器想调用另一个服务器的函数时可以用 thrift 实现

步骤:

  1. 定义接口(定义 thrift 文件):根据对应的接口实现对应的请求操作即可
  2. 作为服务器端(提供函数的进程):需要自己生成一个 server
  3. 作为请求端(请求某个函数):需要写一个 client
二、代码实现

match_client:match 服务的 client 端,可以调用匹配服务的函数
match_server:match 服务的 server 端,可以让 client 端调用自身函数
save_client:save 服务的 client 端,存储数据


用不同的文件夹表示不同的节点,thrift 文件夹存储所有的接口

1、先定义接口

thrift 文件夹用于定义各种接口,创建 mathch.thrift 文件

namespace cpp match_service:命名空间防止变量名重复
定义数据类型:i32:int 类型,string:字符串类型
定义函数:函数用 service 表示,servoce 后面紧跟着的是 service 的名字,service 中需要定义两个函数,一个添加用户信息,另一个是移除用户信息,info 表示额外信息。

定义好接口之后,可以直接通过接口直接生成节点,具体的业务代码需要自己实现。

2、通过接口实现匹配服务的服务器端

文件名为:match_system
有了接口之后,通过 thrift -r --gen cpp 接口路径 这个命令直接生成 C++ 版本的服务器端(节点),如下图所示



C++ 的编译:编译和链接两步

  1. gcc -c 要编译的文件(只需编译 cpp 文件,无需编译 .h 文件),将需要编译的文件全部放到 gcc -c 后面即可
  2. 编译完成后生成 .o 文件,有多少个 .c 文件就生成多少个 .o 文件
  3. gcc .o文件 -o main -lthrift


服务端代码编写完成后,开始运行

3. 实现匹配服务的客户端

文件名为:game

用 python 成功调用了另一个进程的 c++ 的函数

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/990524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号