开源代码TarsGo-v1.0.0源码分析之transport

本文分析了腾讯开源的微服务框架 TarsGo 的 v1.0.0 版本中的 Transport 模块,该模块包含 tarsclient 和 tarsserver,实现了底层通信。TarsClient 使用 TarsClientProtocol 接口,提供 Send 和 Recv 方法,实现数据发送和接收。TarsServer 则通过 TarsProtocol 处理数据,支持 TCP 和 UDP 协议。文章探讨了客户端和服务端的通信流程及协议解析过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人微信公众号文章链接:https://mp.weixin.qq.com/s/wNULJpEr9g3TlGAhD8JuKg

Tars是腾讯开源的一款微服务框架。在去年9月,腾讯宣布正式开源 Tars 的 Golang 版本TarsGo。

 

当TarGo开源的时候,就想对此开源代码进行学习。近期刚好有空,就看了看。说实话,本人并未使用Tars框架,本文只是对TarsGo源码进行分析。

 

Tars整体框架介绍,可以参考https://github.com/TarsCloud/Tars/blob/master/Introduction.md

还有文章:

腾讯 Tars 开源 Go 版本 Tars-Go,并发性能比 gRPC 高 5 倍

https://my.oschina.net/editorial-story/blog/2054185

 

关于TarsGo的介绍还有:

https://github.com/TarsCloud/TarsGo/blob/master/README.zh.md

 

源码地址:

https://github.com/TarsCloud/TarsGo

 

按照本人习惯,从低版本进行研究,此次源码分析定位v1.0.0版本

源码目录:

在Tarsgo中,有两个模块client和server

此图来源https://github.com/TarsCloud/Tars/blob/master/Introduction.md

https://github.com/TarsCloud/Tars/blob/master/Introduction.md

 

server服务运行后,会定期上报心跳到node,node然后把服务心跳信息上报到registry服务,由registry进行统一管理。 Client访问Server流程:client可以通过server的对象名Obj间接访问server,Client会从registry上拉取server的路由信息(如ip、port信息),然后根据具体的业务特性(同步或者异步,tcp或者udp方式)访问server(当然client也可以通过ip/port直接访问server)。

https://github.com/TarsCloud/Tars/blob/master/Introduction.md

在github.com/TarsCloud/TarsGo/tars/tools/Demo中有构建client和server,这将是源码开始的第一步。

 

 

transport

在此之前,有一个底层模块很独立,会优先分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值