欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > IT风暴 > IT热点 > 腾讯开源大规模 Node.js 微服务框架 Tars.js

腾讯开源大规模 Node.js 微服务框架 Tars.js

2018-07-31 389 收藏 0 赞一个 0 真差劲 0 去评论

随着互联网的发展,越来越多的业务不仅仅由单一节点(或是单一语言)就可承载,而是趋向多语言分布式协同开发(如接入层由 Node.js 完成,逻辑(数据)层由 C++/GO/Python 实现)并由此组成大型异构系统。

0aad8262076a490abff1aa77e7fb469c.png

腾讯(现 SuperTeam)基于 Tars 体系研发出 Tars.js 以便用户在不改变异构系统整体架构的情况下快速搭建(迁移) Node.js 服务,并可非常方便的将原来的单一服务拆分为多个(逻辑)子服务。

Tars.js 特性Tars.js 包含下述特性:

● 100% 由 Java 编写,不包含任何 C/C++ 代码。

● 多进程负载均衡与管理。

● 代码异常监控与重启。

● 服务日志搜集与处理。

● HTTP(s) 服务监控与用量自动上报,并支持用户自定义维度上报(PP 监控)。

● 符合 Tars(IDL) 规范的编解码模块。

● 支持 Tars RPC 调用与染色(模调自动上报)。

● 支持在线发送管理命令、拉取服务配置。

● 独创 LongStackTrace™ 异常跟踪机制。

● ……

设计理念

高自由度

●兼容所有(≥0.10)官方 Node.js 版本。

●对 Node.js 源码无侵入无修改。

●底层对上层完全透明,支持各种上层框架,无需变更。

也就是说:

您可以使用任何您熟悉的框架(如 Express.js / Koa.js 等,包括但不仅限于 Web 框架),也无需对框架进行任何修改(无需引入任何中间件)。 即可通过 Tars.js 运行,享受平台提供的各种监控与管理特性。

与此同时,Tars.js 所提供的模块,也可以根据您的需求引入(如未使用到则可不引入)。

高性能

Tars.js 为高性能与大并发量而设计,使用了大量的前端(V8)优化技巧(如 FlattenString/FastProperties 等)尽量降低所提供的能力对于业务性能的影响。

经过测试(Web Server),默认的旁路上报与监控对服务性能的影响≤ 5%,常用模块(RPC、日志等)性能位于业界前列。

差异化

● Tars.js 根据不同的业务类型提供差异化运营方案:

● 高流量业务:尽力降低框架对业务性能的影响。

● 低流量业务:充分利用硬件资源提升开发体验。

团队介绍

SuperTeam 来自于腾讯 QQ 浏览器前端团队,由 @SuperZheng 创立于 2017 年。 团队成员均为全栈架构师,熟知 Web(3D) 、终端、后端与大数据计算,并由传统前端向互联网从业者方向发展。

Hello World

1、在 Tars 平台 -> 服务管理 -> 服务上线,上线一个新服务:

服务基本信息:

● 服务名称:HelloWorld

● 服务类型:NODEJS

● 模板名称:tars.default

OBJ 部署信息:

● OBJ名称:HttpObj

● 是TARS:选择否(移除复选框)

● 端口:自动生成端口

2、安装 @tars/deploy 打包工具。

npmi -g @tars/deploy

3、根据业务需求以及您的喜好选择框架(!Tars.js 不限制您使用的框架!),编写业务代码:

consthttp =require('http');
consthostname = process.env.IP ||'127.0.0.1';
constport = process.env.PORT ||3000;
constserver = http.createServer((req, res) =>{
res.statusCode =200;
res.setHeader('Content-Type','text/plain');
res.end('Hello World');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});

上述为 Node.js 官网 HTTP Server 例子,在 Tars.js 平台上运行只需要修改 IP 和端口即可。 这里在环境变量中获得到的 IP 和 PORT 即为您在第一步配置的 OBJ 部署信息中的 IP 与端口。

在项目根目录下执行打包工具,即可生成发布包 HelloWorld.tgz:

tars-deploy HelloWorld

5、在 Tars 平台上选择您刚刚创建的服务 -> 发布管理 -> 手动上传发布包,然后发布此版本即可。

6、通过您在第一步配置的 IP 与 端口即可访问您的服务。

Tars.js应用领域

Tars.js 在腾讯内部经过 5 年多的沉淀与迭代(Node.js@0.10版本即提供支持),广泛运用于腾讯QQ浏览器、腾讯桌面浏览器、腾讯地图、应用宝、腾讯手机管家、互联网+、腾讯医疗、腾讯觅影、保险、彩票等几十个重要业务中,日承担了上百亿流量。

Github 开源地址:github.com/tars-node/Tars.js

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论