tars专题

Liunx 腾讯开发框架Tars 使用一键安装

git clone https://github.com/TarsCloud/Tars git clone --recursive https://github.com/TarsCloud/Tars.git git clone --recursive https://github.com/TarsCloud/Tars.git 1.1. git submodule init 初始化子模块 1.2.

【腾讯TMQ】开源微服务TARS接口测试揭秘

在了解具体如何做tars接口测试之前,我们先简单了解下这个测试的背景知识: Tars平台和Tars协议。 一、Tars是什么? Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。 Tars是将腾讯内部使用的微服务架构TAF(Total Application Framework)多年的

【Tars-go】腾讯微服务框架学习使用03-- TarsUp协议

3 TarsUP协议 统一通信协议 TarsTup | TarsDocs (tarscloud.github.io) TarsDocs/base at master · TarsCloud/TarsDocs (github.com) : 有关于tars的所有介绍 每一个rpc调用双方都约定一套数据序列化协议,gprc用的是protobuff,tarsgo是统一通信协议 TarsTup。 t

【Tars-go】腾讯微服务框架学习使用01--初始化服务

1 初始INIT-Demo运行 按照官网描述 go get 安装框架依赖 # < go 1.16go get -u github.com/TarsCloud/TarsGo/tars/tools/tarsgogo get -u github.com/TarsCloud/TarsGo/tars/tools/tars2go# >= go 1.16go install github.com/

TARS 染色日志|收集记录特定日志

作者|Eaton 导语| 记日志可以说是程序猿/媛日常开发中的家常便饭了。在日常业务场景中,经常需要分析特定用户的日志,一般的日志记录方式很难满足需求,有什么解决办法呢?TARS 框架中包含染色日志的功能,能够记录特定用户的日志,优雅地解决这一问题。本文将会介绍染色日志的原理和功能,以及如何在 TARS 中使用染色日志。 目录 背景初识染色日志TARS 染色功能概述染色日志初体验主动

TARS RPC 通信框架|提供多种远程调用方式

作者 | Eaton 导语 | TARS 中提供了一套高性能 RPC 通信框架,实现了服务间的高效通信。RPC 作为微服务的核心技术,支撑着移动互联网时代下不断增长的用户和海量的请求。为了满足更多的需求,TARS 支持了同步、异步等多种调用方式。本文将会详细阐述 TARS 中的几种远程调用方式。 目录 RPC 简介TARS 服务寻址方式远程调用方式同步调用异步调用单向调用Hash 调

TARS 服务信息上报|全方位服务监控

作者 | Eaton 导语 | 服务上线运营后,出现异常是难免的事,通常情况下会通过服务日志排查问题。然而这种排查问题的方式有时候是低效的,特别是日志比较多,还不知道如何下手的时候,非常麻烦。那让服务主动报告出现的错误不就行了吗?本文将对 TARS 中的几种信息上报方式进行介绍。 目录 简介状态统计上报异常上报TarsCppTarsGo 属性统计上报总结 简介 TARS

TARS 的服务鉴权功能|避免数据泄露

作者 Eaton 导语 在我们使用微服务架构时,经常会选择通过 RPC 通信框架方便地实现服务间的调用。但方便的同时也带来了一些安全隐患,任何用户都能够访问对外公开的接口,可能造成部分敏感数据的泄露,这是我们不希望看到的,怎么避免呢?这要求我们对访问的用户进行鉴别,因此我们需要一个细化到服务的鉴权访问机制。本文将介绍 TARS 的服务鉴权及其使用方法。 目录 什么是鉴权TARS 服

TARS 的服务自定义命令|实现高效服务管理

作者 Eaton 导语 日常开发中,除了基础的服务管理功能,有时我们还需要进行一些特殊的业务相关的服务管理,比如清除服务缓存,改变服务的模式、停用服务某个接口等。由于这些需求和业务耦合性较高,框架层面一般不会提供这样的功能,开发者甚至需要自己开发额外接口来实现。为了解决这一问题,TARS 在框架层面提供了自定义命令的功能。 目录 TARS 自定义命令简介添加自定义命令实现自定义命令

tars源码漫谈第33篇------tc_pack.h/tc_pack.cpp(序列化和反序列化)

看tc_pack这个名字就知道, 这可能涉及到打包操作, 进去看一下, 果然。 其实, 就是序列化和反序列化。        源码中充斥了对 <<和>>的重载, 让使用者感觉到比较爽, 我们来看看如何使用: bool b = false;char c = 'x';short si = 100;int ii = 200;char cn[] = "xyz";str

tars源码漫谈第32篇------tc_parsepara.h/tc_parsepara.cpp(http式参数的parse)

最近要开发一个需求, 涉及到http参数的处理, 我居然还自己去写string到map和map到string的转换, 当看到tc_parsepara后, 深感痛心, 原来, tars的基础库早就实现了这些功能, 来看一下: /*** Tencent is pleased to support the open source community by making Tars availa

tars源码漫谈第31篇------tc_readers_writer_data.h(读写数据类)

tc_readers_writer_data中的代码为: /*** Tencent is pleased to support the open source community by making Tars available.** Copyright (C) 2016THL A29 Limited, a Tencent company. All rights reserved.**

tars源码漫谈第30篇------tc_openssl.h/tc_openssl.cpp(openssl操作的封装)

来看下tc_openssl,  其中的TC_OpenSSL是对开源openssl基本操作的封装, 可以看到: #include <openssl/ssl.h>#include <openssl/err.h>        可以将_ssl理解为一个广义socket,   如下是初始化和销毁的相关操作: TC_OpenSSL::~TC_OpenSSL(){Release();

tars源码漫谈第29篇------tc_sslmgr.h/tc_sslmgr.cpp(ssl操作的封装)

ssl是secure socket layer的意思, 是一个协议, 主要是为了让socket层的通信更安全。 大名鼎鼎的openssl就是ssl协议的开源实现。所以, 可以预期, tc_sslmgr中基本是对openssl的api的封装。看头文件包含就知道了: #include "util/tc_sslmgr.h"#include "util/tc_buffer.h"#incl

tars源码漫谈第28篇------tc_singleton.h(多线程下的单例)

要写一个单例, 很简单。 但是, 如果考虑多线程, 还真不是容易的事, 来看看tc_singleton.h: /*** Tencent is pleased to support the open source community by making Tars available.** Copyright (C) 2016THL A29 Limited, a Tencent com

tars源码漫谈第27篇------tc_thread.h/tc_thread.cpp(包含线程锁的重要线程类)

来看看tc_thread中的线程类, TC_ThreadControl是线程控制类, 对线程句柄进行操作,  常见操作如: void TC_ThreadControl::join(){if(pthread_self() == _thread){throw TC_ThreadThreadControl_Exception("[TC_ThreadControl::join] can't

tars源码漫谈第26篇------tc_monitor.h(与互斥锁、条件变量相关的重要类)

tc_monitor中的TC_Monitor是线程锁的监控类模板, 通常线程锁,都通过该类来使用,而不是直接用TC_ThreadMutex、TC_ThreadRecMutex        来看看源码: /*** Tencent is pleased to support the open source community by making Tars available.** C

tars源码漫谈第25篇------tc_thread_rwlock.h/tc_thread_rwlock.cpp(读写锁)

tc_thread_rwlock里面的类TC_ThreadRWLocker是对读写锁操作的封装。 而读写锁, 是linux中非常基本的概念, 在某次面试的时候, 我还被问到过。       来看看: /*** Tencent is pleased to support the open source community by making Tars available.** Cop

tars源码漫谈第24篇------tc_lock.h(基本锁)

这个文件很简单, 来看下: /*** Tencent is pleased to support the open source community by making Tars available.** Copyright (C) 2016THL A29 Limited, a Tencent company. All rights reserved.** Licensed unde

Tars框架 Tars-Go 学习

Tars 框架安装 网上安装教程比较多,官方可以参数这个 TARS官方文档 (tarsyun.com) 本文主要介绍部署应用。 安装完成后Tars 界面  增加应用amc 部署申请 amc.GoTestServer.GoTestObj 名称不知道的可以参考自己创建的app config 点击刷新可以看到自己部署的应用 服务发布 上传发布包

TAF /tars必修课(一):整体架构理解

来自零点智能社区 一、前言 TAF,一个后台逻辑层的高性能RPC框架,目前支持C++,Java, node 三种语言, 往后可能会考虑提供更多主流语言的支持如 go等,自定义协议JCE,同时也支持HTTP。 它集可扩展协议编解码、高性能RPC通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体,通过它可以快速用微服务的方式构建自己的稳定可靠的分布式应用,并实现完整有效的服务治理。 当前

AGI热门方向:国内前五!AI智能体TARS-RPA-Agent落地,实在智能打造人手一个智能助理

早在 1950 年代,Alan Turing 就将「智能」的概念扩展到了人工实体,并提出了著名的图灵测试。这些人工智能实体通常被称为 —— 代理(Agent)。 代理这一概念起源于哲学,描述了一种拥有欲望、信念、意图以及采取行动能力的实体。在人工智能领域,这一术语被赋予了一层新的含义:具有自主性、反应性、积极性和社交能力特征的智能实体。大型语言模型(LLMs)的出现为智能代理的进一步发展带来了希

AGI热门方向:国内前五!AI智能体TARS-RPA-Agent落地,实在智能打造人手一个智能助理

早在 1950 年代,Alan Turing 就将「智能」的概念扩展到了人工实体,并提出了著名的图灵测试。这些人工智能实体通常被称为 —— 代理(Agent)。 代理这一概念起源于哲学,描述了一种拥有欲望、信念、意图以及采取行动能力的实体。在人工智能领域,这一术语被赋予了一层新的含义:具有自主性、反应性、积极性和社交能力特征的智能实体。大型语言模型(LLMs)的出现为智能代理的进一步发展带来了希