赞
踩
以下为授权转载的一盎司科技公众号文章
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
发布服务端
新建应用:打开Tars框架的Web管理平台的运维管理/应用管理,新建应用TodoApp:
部署应用:打开运维管理/部署申请,填写要发布服务的基础信息,注意选择应用,模板,服务类型等,端口可选择自动生成,Obj需要与服务端的保持一致:
查看应用:部署申请完成后,选择服务管理,刷新一下即可看到新增应用TodoApp和新部署的服务BisServer,此时服务还不可用:
上传发布包:然后选择发布管理,上传发布包(其中发布包来自于make tar命令生成的压缩包):
发布版本:上传完成后,选择最新版本后,点击发布即可:
查看服务:接发布完成后即可查看服务状态,如果有异常可查看原因后处理,重新上传发布即可。
定义接口文件
直接使用服务端定义的接口文件TodoTarsObj.tars,为方便起见,此处直接复制到客户端目录下,更为通用的做法是发布协议文件到指定的目录,供其他服务或客户端共享使用。
同步调用服务端
首先需要指定服务端调用地址,此处是[应用名APP]+[服务名Server]+[服务提供者Servant]+[ip]+[port],即TodoApp.BizServer.TodoTarsObjObj@tcp -h 172.25.0.5 -t 60000 -p 14295 -e 0,此地址可以直接从服务端拷贝得到,选择servant管理即可:
编写源代码:源代码如下:
编写Makefile文件:根据模板适当修改即可:
编译客户端执行以下命令编译客户端:
cd BizClient
make
测试客户端:直接执行可执行程序即可:
异步调用服务端
异步调用只是代码实现方式有差别,主要是通过回调的方式返回结果,首先需要编写自定义回调类,然后再采用异步调用即可。
编写回调类:源代码如下:
自定义回调类TodoCallback继承自apiPrxCallback,可以通过在编译协议生成的TodoTarsObj.h文件中,搜索异步函数async_addTodo来查找对应的回调类:
编写异步调用代码:主要在于编写异步调用过程,只是调用处有调整,其他大部分和同步保持一致:
编写Makefile文件:Makefile文件与同步方式相同
编译客户端:与同步方式编译方式相同:
测试客户端:重点看结果是不是从回调函数返回:
至此,Tars框架开发的服务端部署发布,及测试客户端的同步,异步模式均已验证完成。
整个过程来看,最主要是三要素(应用名APP/服务名Server/服务提供者Servant)的确定,然后是协议的定义。其实发布和接口调用过程相对简单,操作过一次基本就能掌握。本质上是开发人员自我驱动整个开发过程,即由开发人员开发,部署,测试。
框架本身提供了丰富的脚本和自动化处理过程,开发人员只需要关注应用程序本身即可,综合看来,确实是一套可行的开发模式。框架也提供了其他语言的开发,如GoLang,NodeJS,Java等,极大丰富了应用场景,Tars确实是值得尝试的微服务框架。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。