加入收藏 | 设为首页 | 会员中心 | 我要投稿 衢州站长网 (https://www.0570zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

解读 | TARS开源项目发布Go语言版本

发布时间:2018-09-29 04:16:42 所属栏目:建站 来源:佚名
导读:副标题#e# 【新品产上线啦】51CTO播客,随时随地,碎片化学习 Tars 是腾讯开源的一款微服务框架,它于去年 4 月份开源,并于今年 6 月捐赠给了 Linux 基金会。Tars 为用户提供了涉及到开发和运维的一整套解决方案,帮助一个产品或者服务快速开发、发布、部

对于流量控制,服务发布上线主要面对的问题是“如何做对业务无损的服务变更”与“如何做灰度验证”,在 Tars 中,可通过 Registry 和开发框架配合实现按需进行流量控制,达到无损发布和灰度流量的目的。

解读 | TARS开源项目发布Go语言版本

语言支持方面,除了此前已经支持的 PHP、C++、NodeJS 与 Java,此次还加入了 Golang 支持。

此外,Tars 还提供一个 OSS 平台,可使运营可视化、Web 化。

解读 | TARS开源项目发布Go语言版本

它主要包含以下特点:

  • 业务管理:包括已部署的服务,以及服务管理、发布管理、服务配置、服务监控、特性监控等

  • 运维管理:包括服务部署、扩容、模版管理等

  • 提供 Open API ,可定制自己的 OSS 系统

Tars-Go,Tars Go!

多语言支持是 Tars 的一大优势,在此之前 Tars 已经推出了 C++、Java、PHP、NodeJS 版本。Go 语言的协程并发机制使它非常适用于大规模高并发后端服务器程序开发,同时随着容器化技术的飞速发展,诸如 Docker、Kubernetes 与 Etcd 等项目兴起,使得 Go 语言越来越流行,并成为云原生的首选语言。Tars 的 Go 语言版本也因此应运而生,此次 Tars-Go 的推出,在大环境整体逐渐走向云原生的当下,意义非凡。

此次新推出的 Go 版本 Tars-Go 整体架构主要可以分为三个部分,如下图所示:

解读 | TARS开源项目发布Go语言版本

  • 左边是 tars2go 工具,tars2go 基于巴科斯范式(BNF),这是一种描述程序语言结构的形式化方法,用来对 Tars 文件进行语法和词法分析,生成相应的代码,供客户端和服务端使用。同时它提供 Tars 协议二进制流的编解码功能,将二进制包转成相应的 Go 数据结构。

  • 右边部分是 package tars,它包含了 Client 和 Server 两部分的功能:

    • Client 由 Servantproxy、Communicator、ObjProxy、adapterproxy 等逻辑结构组成,这些逻辑结构用来管理 servant,obj 对应到的服务端节点的 ip 端口,和 C++ 的逻辑保持一致。底层使用 net.Conn 来建立具体的连接,并用 SendQueue chan 来控制并发数量。Client 还包含一些 Goroutine,用来做特性监控和 stat 监控上报。

    • (编辑:衢州站长网)

      【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读