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

tars-源码分析-服务端 server端代码分析 项目地址-作者lowkey 主要类简介 Application 我们实现的helloServer需要继承自这个类。主要承载配置的解析、epollser的初始化、消息的处理和分发、servant的创建和管理。 其中最主要的两个成员: EpollServer、ServantHelperManager TC_EpollServer 接收新的连接 负载所有io 消息分发到servant ServantHelperManager helloServer初始化的时候会通 阅读详情

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


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

ubuntu中配置tars详细教程 Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。 官网:https://github.com/TarsCloud/Tars 本文主要参照官网中安装步骤,但是官网中使用的是Centos系统,对使用ubuntu系统的使用者来说其中很多的指令都是不一样的,本文中将介绍在ubuntu中安装的具体过... 阅读详情

相关推荐

鹅厂开源框架tars之网络层实现

tars开源框架地址:https://github.com/Tencent/Tars 系列文章: 鹅厂开源框架tars之日志服务 鹅厂开源框架tars之运营监控服务 鹅厂开源框架tars之基础组件 鹅厂开源框架tars之网络层实现 简介:Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(Total Application Framework),目...

游戏人生的专栏 3449

C++ 中的微服务架构 Microservices Architecture

C++ 中的微服务架构 Microservices Architecture

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 3700

C++ Tars高性能RPC框架:名字服务与协议解析

Tars是一种轻量级、高性能、可扩展的微服务开发框架,由腾讯公司开源,广泛应用于互联网服务。Tars框架以面向对象的方式抽象服务,支持多种编程语言实现,并提供了一套完整的服务治理解决方案。

weixin_30598047的博客 1379

开源推荐-C++开发的微服务框架Tars

Tars项目于2017年4月开源,BSD3协议,至今已有5年。在软件层面,社区的版本保持稳定的迭代,支持了多语言微服务的开发和治理;在硬件层面,也移植到Arm生态上。Tars可以帮助开发人员和企业,以微服务的方式快速构建自己稳定可靠的分布式应用,从而令开发人员只关注业务逻辑,提高开发和运营效率.........

evilstar2015的专栏 5880

6种微服务RPC框架,你知道几个?

跟语言平台绑定的开源RPC框架主要有下面几种。Dubbo:国内最早开源的RPC框架,由阿里巴巴公司开发并于2011年末对外开源,仅支持 Java语言。 Motan:微博内部使用的RPC框架,于2016年对外开源,仅支持Java语言。 Tars:腾讯内部使用的RPC框架,于2017年对外开源,仅支持C++语言。 SpringC

网络虚拟化介绍(OVS、DVS)

网络虚拟化概念网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟层;该虚拟层可以接管网络服务和配置,实现网络服务与物理层的解耦,打破物理资源限制;通过网络虚拟层能够在一个物理网络上模拟出多个逻辑网络,并且多用户在逻辑网络上相互隔离,保证网络安全网络虚拟化的特点隔离性:不同租户的流量相互之间不能互访;但是IP/MAC地址都可以独立规划可移动性:虚拟机可以跨二层/三层迁移,甚至可以跨广域网迁移(迁移前后虚拟机Vlan和IP地址都不会发生变化)可扩展性:逻辑网络的规模和数量可扩展。

m0_49864110的博客 1万+

微服务开源框架TARS的RPC源码解析 之 初识TARS C++服务端

作者:Cony 导语:微服务开源框架TARS的RPC调用包含客户端与服务端,《微服务开源框架TARS的RPC源码解析》系列文章将从初识客户端、客户端的同步及异步调用、初识服务端、服务端的工作流程四部分,以C++语言为载体,深入浅出地带你了解TARS RPC调用的原理。 什么是TARS TARS是腾讯使用十年的微服务开发框架,目前支持C++、Java、PHP、Node.js、Go语言。该开源项目为用户提供了涉及到开发、运维、以及测试的一整套微服务平台PaaS解决方案,帮助一个产品或者服务快速开发、部署、测试.

TARSFoundation的博客 3883

从寄存器配置到G值:一份给STM32开发者的SC7A20加速度数据换算保姆级指南

本文为STM32开发者提供SC7A20三轴加速度传感器的数据换算保姆级指南,详细解析从寄存器配置到G值转换的全过程。涵盖量程选择、输出值换算原理及优化代码实现,帮助开发者快速掌握加速度数据的物理意义转换技巧,提升运动感知系统开发效率。

weixin_29172963的博客 172

微服务开源框架TARS的RPC源码解析 之 初识TARS C++客户端

微服务开源框架TARS的RPC源码解析 之 初识TARS C++客户端什么是TARS初识客户端CommunicatorServantProxy与ServantProxyFactoryCommunicatorEpollObjectProxy与ObjectProxyFactory初始化代码1. 执行stringToProxy2.执行Communicator的初始化函数3.尝试获取ServantProxy4.获取ObjectProxy5.建立ObjectProxy与AdapterProxy的关系6.继续完成Ser

TARSFoundation的博客 3424

BUUCTF reverse题解汇总

BUUCTF平台刷题过程中做的一些逆向题解的总结归类

于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 1万+

DOTween回调函数的隐藏技巧:优化你的Unity动画流程

本文深入探讨了DOTween回调函数在Unity动画开发中的高级应用技巧,帮助开发者优化动画流程。通过分析回调机制、链式应用模式和大规模动画系统管理,提升性能与可维护性,特别适合需要高效处理复杂动画场景的Unity开发者。

weixin_27945229的博客 319

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

Tars是腾讯开源的基于名字服务的高性能RPC开发框架,也是一套开发模式,此处简单介绍C++开发服务的一些基本步骤

iounce 853

AMEsim柱塞泵的建模学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、为什么要对柱塞泵进行仿真?二、Amesim中柱塞泵的模型1.amesim中自己的定排量五柱塞的斜盘柱塞泵2.压力、流量仿真总结 前言 最近在学习Amesim进行柱塞泵的仿真学习,顺便在这里记录我的学习过程,这是我的初衷 提示:以下是本篇文章正文内容,下面案例可供参考 一、为什么要对柱塞泵进行仿真? 柱塞泵是功能和动力学比较复杂的流体机械。而在实际实验中,往往没有条件或者需要对柱塞泵做一些优化,所以需要我们利用仿真...

innocent_cft的博客 8184

android socket服务端源码_微服务开源框架TARS的RPC源码解析 之 初识TARS C++服务端...

导语:微服务开源框架TARS的RPC调用包含客户端与服务端,《微服务开源框架TARS的RPC源码解析》系列文章将从初识客户端、客户端的同步及异步调用、初识服务端、服务端的工作流程四部分,以C++语言为载体,深入浅出地带你了解TARS RPC调用的原理。TARS是腾讯使用十年的微服务开发框架,目前支持C++、Java、PHP、Node.js、Go语言。该开源项目为用户提供了涉及到开发、运维...

weixin_39622891的博客 364

15、分布式查询处理详解

本博文深入探讨了分布式环境下的查询处理与优化技术。从查询处理的基本概念出发,分析了在分布式系统中执行查询所面临的额外挑战,并通过实例比较了不同的执行策略。文章详细介绍了查询优化的组成要素,包括搜索空间、成本模型和搜索策略,同时涵盖了查询处理的多个层次以及数据本地化的核心方法。此外,还讨论了连接排序优化、分布式成本模型以及多种查询优化方法,如静态优化、动态优化和混合优化。最后,提出了自适应查询处理的概念,旨在提高分布式查询的灵活性和效率。通过综合应用这些技术,可以有效提升分布式数据库的查询性能,降低通信和计算

gan8painter的博客 73

深入理解Android音视频同步机制(三)NuPlayer的avsync逻辑

本文深入介绍了NuPlayer的avsync逻辑和原理

张晖的专栏 1万+

客户连接多个服务端_微服务开源框架TARS的RPC源码解析 之 初识TARS C++客户端

作者:Cony导语:微服务开源框架TARS的RPC调用包含客户端与服务端,《微服务开源框架TARS的RPC源码解析》系列文章将从初识客户端、客户端的同步及异步调用、初识服务端、服务端的工作流程四部分,以C++语言为载体,深入浅出地带你了解TARS RPC调用的原理。TARS是腾讯使用十年的微服务开发框架,目前支持C++、Java、PHP、Node.js、Go语言。该开源项目为用户提供了涉...

weixin_39623050的博客 513

基于 Simulink 的固态变压器(SST)多级协同控制实战教程

《固态变压器多级协同控制仿真指南》摘要: 本教程详细讲解了基于Simulink的固态变压器(SST)三级架构建模与控制方法。核心内容包含:1)搭建级联H桥整流(CHB)、双有源桥(DAB)和逆变器(VSI)的三级主电路;2)提出创新的多级协同控制策略,通过功率前馈实现输入输出级动态匹配;3)给出系统级功率平衡、单元级均压控制的具体实现方案。教程特别强调解决实际工程中的关键问题:代数环处理、软启动设计和刚性系统求解器选择,并提供了硬件在环(HIL)仿真建议。附带的MATLAB代码示例可直接用于实现电容电压均衡

xiaoheshang_123的博客 120

腾讯微服务框架 Tars 的 Go 性能提升之路

前言在 4 月 27 日举办的 Gopher China 2019 中,来自腾讯Tars 团队的核心成员陈明杰进行了一场题为《Tars Go 性能提升之路》的演讲。陈明...

Go中国 2139

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

微服务开源框架TARS的RPC源码 之 初识TARS C++服务端

Application:一个服务端代表一个Application,主要是读取用户的配置文件,根据配置文件初始化代理,启用网络线程和业务线程。TC-epollServer:管理业务模块和网络模块。网络模块:NetThread网络模块中有TC_Epoller作为io复用,TC_socket可以建立socket的连接,ConnectionList是网络连接的的记录,这个模块主要和数据的收发有关。业务模块: HandleGroup与Handle这些是业务模块,Handle是一个业务线程,Handlegroup是一组

记录C++/Linux/操作系统的学习 850

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TARS马上要成立基金会了,这款微服务框架适合你么?

导语 | 20世纪90年代中期开始,分布式架构开始流行起来,面向服务的架构(SOA)越来越占主导地位。在21世纪初,微服务开始出现,一系列基于微服务架构...

QcloudCommunity的博客 742

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

例子 客户端_微服务开源框架TARS的RPC源码解析 之 初识TARS C++客户端

作者:Cony导语:微服务开源框架TARS的RPC调用包含客户端与服务端,《微服务开源框架TARS的RPC源码解析》系列文章将从初识客户端、客户端的同步及异步调用、初识服务端、服务端的工作流程四部分,以C++语言为载体,深入浅出地带你了解TARS RPC调用的原理。TARS是腾讯使用十年的微服务开发框架,目前支持C++、Java、PHP、Node.js、Go语言。该开源项目为用户提供了涉...

weixin_39710179的博客 247

Tars微服务框架C++开发之Lua脚本

Tars微服务框架C++开发之Lua脚本

iounce 346

腾讯开源后台开发框架Tars安装

简介 Tars是腾讯开源的一款后台统一应用框架TAF(Total Application Framework),支持C++/Java/PHP/Nodejs/Go语言。 它集可扩展协议编解码、高性能RPC通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体,通过它可以快速用微服务的方式构建自己的稳定可靠的分布式应用,并实现完整有效的服务治理。 github地址:https://githu...

guotianqing的博客 2483

【TARS】TARS-CPP客户端学习一

1.客户端类的定义

Edidaughter的博客 1309

【TARS】理解RegistryServer

1.源码与可执行程序 /home/muten/module/TARS/TarsFramework/RegistryServer /usr/local/app/tars/tarsregistry/bin/tarsregistry

Edidaughter的博客 2490
上一篇: PySide6开发与实战电子书
下一篇: Tars微服务框架C++开发简介之客户端
iounce
博客等级 码龄18年 3粉丝 0原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值