高手问答第 255 期 —— 5G 背景下海量请求如何用微服务 hold 住

雑人 发布于 09/13 19:39
阅读 6K+
收藏 6

随着 5G 的到来,各个行业都要面对海量请求,微服务架构在这个时代对企业而言有着举足轻重的作用。微服务架构存在运维难、监控难、实操难等问题, 而 Tars 是实现微服务架构优秀的一个选择。Tars 是高性能、多语言的微服务治理框架 ,在超过 120 家公司的 261,200 台服务器上稳定运行。

OSCHINA 本期高手问答( 2020 年 9 月 14 日——2020 年 9 月 20 日 ) 请来了俞慧涛老师 @kerriganA如果你对 Tars 感兴趣,不管是架构 ,还是适用场景,都可以在这期高手问答得到启发。

问答主题

本次问答主要包括以下方向:

  1. Tars 架构、包含协议实现、系统性能
  2. Tars 与其他的开源框架如何结合 ,如 mybatis、 springcloud、springboot
  3. Tars 适用的场景

有其他相关的问题,也欢迎提问。

嘉宾简介

俞慧涛阅文集团后台开发专家, 负责阅文集团用户中台服务与 TarsJava 的技术设计工作。在阅文主导了 Tars 微服务在海外项目 、红袖新兴项目的应用。在流量高、 变化频率快的业务场景下也能保证其架构的稳定性。腾讯开源 TARS 项目贡献者, 在处理 RPC 、k8s 微服务上面有深入的实践经验。

为了鼓励提问,TARS 基金会会在问答结束后从提问者中抽取 7 名幸运会员赠与星空雨伞,另抽取 3 名幸运会员赠与限量版公仔 TARS.Q。

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就相关问题向俞慧涛老师 @kerriganA 提问,请直接回帖提问。

加载中
0
LeoXu
LeoXu

@kerriganA老师好,请问小白如何入手Tars,并将其应用到创业项目上,求路径指南,谢谢!

源码节点
源码节点
回复 @kerriganA : 这个正好,是我想问的,感谢老师的分享
kerriganA
kerriganA
tars 是一套集监控、运维管理 、监控、微服务一体的框架 ,可以轻松的把整一个体系应用到你的项目上, 大学生群体看文档也可以轻松的使用现在的框架,具体的文档部署可以看https://github.com/TarsCloud/TarsJava/tree/master 文档一步一步往下走。就可以发布一个hello world了
0
赤脚小子
赤脚小子

@kerriganA  你好,请问TARS和TSF是什么关系?

kerriganA
kerriganA
没有联系关系 ,都是腾讯出品的技术产品
0
三两记忆
kerriganA
kerriganA
谢谢:stuck_out_tongue:
0
FlashCHen
FlashCHen

@kerriganA  对于Service Mesh,Service Mesh相当于将所有的服务治理都单元化集成到某个应用中,那么每一个单元的负载均衡或者是流量控制,是如何控制的呢?

kerriganA
kerriganA
service mesh 是微服务间的 网络访问层,负责服务之间的网络调用、限流、熔断和监控。tars已经集成其中一部分功能。其中负载均衡是通过tarsclient来实现的均衡和熔断, 流控现在的tars版本中暂时没有。
0
山间无涯
山间无涯

@kerriganA 您好,我看到文档中有写java RPC源码实现、Go源码实现等,这是说各个语言都有独立的实现吗?这样的开发成本是不是比较高,且各个语言版本都需要专门维护?

kerriganA
kerriganA
Tars平台分框架部分(全c++实现),各个语言的通信部分(各语言实现,如java), 还有Tarsweb的管理部分(nodejs), 各个语言都是顶尖的专家根据各个语言的特性的不同,做的定制化的开发
0
A阿福A
A阿福A

@kerriganA 俞老师您好,请问Tars在使用场景上,有没有简单的划分建议?主要关注在微服务能够支撑多少业务量的情况下,Tars的性能会比较好?简单点说,有没有一个考量标准,在承接大量业务压力的情况下,Tars这种一体化框架会对业务产生一些反向作用?先谢谢您~

A阿福A
A阿福A
回复 @kerriganA : 好的谢谢,那就需要对这个框架了解和掌控的比较好,还需要多花时间呢
kerriganA
kerriganA
现在的Tars的话。qps一秒百万级的请求都没有问题( 一组服务器)。也有很多这样的服务 。所以对tars而言,当企业的业务量越大,划分合理的时候 。都可以承载得住 。使用Tars框架若是划分得比较细且业务规划不当的话。容易造成服务过多的情况 。需要结合自身的业务做微服务的划分
0
xiafix
xiafix

@kerriganA  目前,公司主要用springboot netflix和alibaba 2种版本,缺点是与java语言绑定。正在落地istio servermesh微服务方案。因为不熟悉tars,想问一下,tars有语言限制没? 和istio、linked相比,有哪些异同。因为基础架构部的人员和规模有限,在选型时会比较慎重,尽量会选使用范围广、有可能成为事实标准的开源软件。

kerriganA
kerriganA
Tars没有语言限制 ,主流的语言都支持。当公司基础架构部的人少的时候 。Tars是一个非常 明智的选。 Tars相比其他的方案。在各个环节都有有考虑到。使用起来相对会简单很多。比如“监控、节点熔断、运维操作”等等
0
nimagugu
nimagugu

tars的生态环境不好,4月入坑3天即没用了,完全是小众在玩

kerriganA
kerriganA
回复 @kerriganA : Tars的优势也是可以结合各个语言的生态来打造微服务,php、 c++、java、golang,当你需要一个语言中的依赖仅c++有的时候 。就可以使用C++来写tars服务
kerriganA
kerriganA
整体的tars平台在各个语言的组件连接得非常的好哈。tarsjava与其他的各个开源的组件都可以无鏠链接 。不管是spring,spring cloud都有非常多的成熟的案例可以组合哈。 使用者也不算小从了哈。现在github上面tars项目总量也有8k的星星了,除了腾讯,虎牙等大型公司都有使用
0
贺小皮蛋
贺小皮蛋

来学习了 如果是海量请求,网关肯定扛不住

kerriganA
kerriganA
新的TarsGateway网关使用的是c++编写纯异步的服务 。服务的负载取决于部署的节点数 和cpu的量哈, https://github.com/TarsCloud/TarsGateway 在测试过程人也可以把所有的核心的cpu都打满。具体睦服务的实现
0
WanAsan
WanAsan

@kerriganA 你好!Tars的设计思路

kerriganA
kerriganA
TARS 协议采用接口描述语言(IDL)来支持多种编程语言,C++、Java、Node.JS、PHP、Python、Golang等,使不同平台、不同语言编写的程序能够相互通信交流,打破语言屏障。 平台运维方面也实现了监控、熔断、链路追踪等功能。
返回顶部
顶部