Tars微服务框架C++开发简介之服务端

以下为授权转载的一盎司科技公众号文章


Tars是腾讯开源的基于名字服务的高性能RPC开发框架,也是一套开发模式,接下来我们将简单介绍C++开发服务的一些基本步骤,详细的说明可参考官方文档(https://doc.tarsyun.com)。

以下以一个示例来作为参考,来说明具体的开发过程:

  • 应用名APP: TodoApp

  • 服务名Server: BizServer

  • 服务提供者Servant: TodoTarsObjObj

示例代码地址:

GitHub地址:https://github.com/iounce/tars-demo

Gitee地址:https://gitee.com/iounce_admin/tars-demo

环境

  • Windows操作系统:Windows10(21H2,19044.1766)

  • Linux操作系统:Ubuntu 22.04 LTS

  • Docker Desktop:v4.10.1

  • Tars framework: 3.0.14

定义接口文件

定义接口文件TodoTarsObj.tars,包括api,出入参结构体等:

图片

接口文件名称建议不带Obj,略显重复。

编译接口文件

使用命令/usr/local/tars/cpp/tools/tars2cpp TodoTarsObj.tars编译协议文件,生成对应头文件:

图片

生成服务端程序框架

使用脚本生成服务端基本结构,执行命令
/usr/local/tars/cpp/script/cmake_tars_server.sh TodoApp BizServer TodoTarsObj,其中Servant不加obj,即TodoTarsObjObj只写TodoTarsObj:

图片

图片

拷贝协议文件TodoTarsObj.tars和编译后的头文件TodoTarsObj.h到BizServer/src目录,替换默认生成的文件。

Servant名称建议不带Obj,略显重复。

实现接口类

首先在协议头文件TodoTarsObj.h里找到interface名称对应类的纯虚函数:

图片

拷贝这两个函数的声明到实现类TodoTarsObjImp头文件中,同时修改继承类为TodoApp::api,然后添加实现:

图片

图片

编写CMakeLists.txt文件

在BizServer目录下有自动生成的CMake文件,修改下工程名,再根据需要添加库文件目录:

图片

编译服务端

分别执行以下命令,生成BizServer.tgz文件:

  • cd BizServer/build

  • cmake ..

  • make

  • make tar

图片

整个过程主要是定义协议文件TodoTarsObj.tars,然后实现Imp的Servant 的接口实现类TodoTarsObjImp,其他都可以通过脚本自动生成,非常方便快捷。

下一篇,我们将介绍如何发布编写的服务到Tars框架平台,同时编写客户端验证协议中定义的接口。

说明:

由于是在docker中安装的Tars框架,所以开发环境需要进入Tars的framework框架所在的容器中开发,主机与容器之间的文件拷贝,需要使用以下命令:

  • 本机到容器:docker cp [本地目录] [容器ID]:[容器目录]

    docker cp -a D:\iounce\src\tars\TodoApp\BizServer\src 84d040a770c1:/root/BizServer

  • 容器到本机:docker cp [容器ID]:[容器目录] [本地目录]

    docker cp -a 84d040a770c1:/root/BizServer/src  D:\iounce\src\tars\TodoApp\BizServer

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值