| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .pdf | 3 |
| 摘要 | ||
文档介绍了腾讯基于Go语言开发的高性能高可用微服务框架TarsGo的实践。TarsGo是Tars框架的Go语言实现,Tars是一个支持多语言、内嵌服务治理功能并与Devops协同的微服务框架,在腾讯内部使用十年后于2017年4月10日开源,2018年6月加入Linux基金会。TarsGo的研发背景包括:统一编程风格适应快速迭代、高效开发运营工具、跟上云时代(docker/k8s/etcd等使用Go)、学习成本低(关键字少、语言直观)、开发难度低(编译快、自带工具库)、版本管理方便(远程git管理)、运营管理优势(静态编译不依赖第三方库,只依赖系统调用)。文档还提到了Bytes的Buffer带来的性能问题,使用sync.pool缓存临时对象解决频繁内存分配导致的GC问题。TarsGo架构包括tars2go代码生成、Tars协议序列化、客户端与服务器组件等。 | ||
| AI总结 | ||
TarsGo是腾讯基于Go语言开发的高性能、高可用微服务框架,源自内部使用十年的Tars框架,于2017年开源,2018年加入Linux基金会。其研发背景包括:Go语言统一风格适合多人迭代、开发运营工具高效、顺应Docker/K8s云时代趋势、学习成本低、编译快、静态编译无依赖便于运营。
框架核心功能包括:基于TARS协议的RPC框架,支持多语言、服务治理、DevOps协同,接口代码自动生成,版本兼容性好。性能方面,通过使用sync.pool缓存临时对象,解决了bytes.Buffer频繁内存分配导致的GC和性能问题。
Tars集群运营曾面临资源隔离难、环境依赖冲突等问题,而Go静态编译特性(仅依赖系统调用)有效解决了运行时环境依赖,适应多环境运营。
架构组件包括:tars2go代码生成器、Tars协议序列化、客户端/服务端通信、路由刷新、协程池、熔断、一致性哈希、Zipkin调用链、自定义插件、无损热重启等。
性能数据(千兆网卡):TPS在10字节、128字节、256字节负载下表现优异。应用案例包括腾讯内部及业界广泛使用,开源地址:https://github.com/TarsCloud。 | ||
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
12 页请下载阅读 -
文档评分














2.3 高性能高可用的微服务框架TarsGo的腾讯实践 - 陈明杰
Rust 异步并发框架在移动端的应用 - 陈明煜