当前位置:   article > 正文

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

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

发布服务端

  • 新建应用:打开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确实是值得尝试的微服务框架。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/844478?site
推荐阅读
相关标签
  

闽ICP备14008679号