文章目录
Tars是什么?
Tars 是腾讯开源的一款微服务框架 基于以前腾讯内部使用多年的TAF框架而来
Tars能干什么?
Tars 为用户提供了涉及到开发、运维,以及测试的一整套解决方案,
帮助一个产品或者服务快速开发、部署、测试与上线。
通过它可以快速用微服务的方式构建稳定可靠的分布式应用,
并实现完整有效的服务治理。
Tars包含了什么?
它集可扩展协议编解码、高性能 RPC 通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体
Tars的设计思想是什么?
Tars的设计思路是采用微服务的思想对服务进行治理,
同时对整个系统的各个模块进行抽象分层,
将各个层次之间相互解耦或者松耦合
Tars的架构是怎样的?
按照我的理解可以分为两层
底层的协议层
最底的协议层,设计思路是将业务网络通信的协议进行统一,
以IDL(接口定义语言)的方式,开发支持多平台、可扩展、协议代码自动生成的统一协议。
通过IDL语言协议,可以定义服务提供的接口,并自动生成客户端和服务端的相关通信代码,
服务端只需实现业务逻辑即可对外提供服务,客户端通过自动生成的代码即可调用服务,
调用方式支持三种模式:
同步调用:客户端发出调用请求后等待服务返回结果后再继续逻辑;
异步调用:客户端发出调用请求后继续其他业务逻辑,服务端返回结果又由回调处理类处理结果;
单向调用:客户端发出调用请求后就结束调用,服务端不返回调用结果。
关于 腾讯内部TAF框架使用的IDL—JCE协议 看这篇文章
https://blog.csdn.net/vjhghjghj/article/details/105916450
上层的服务层
介绍
公共库、通讯框架、平台层,设计思路是让业务开发更加聚焦业务逻辑的本身。因此,从使用者的角度出发,封装了大量日常开发过程中经常使用的公共库代码和远程过程调用,让开发使用更简单方便;从框架本身的角度出发,做到高稳定性、高可用性、高性能,这样才能让业务服务运营更加放心;从分布式平台的角度出发,解决服务运营过程中,遇到的容错、负载均衡、容量管理、就近接入、灰度发布等问题,让平台更加强大。
运营层,设计思路是让运维只需要关注日常的服务部署、发布、配置、监控、调度管理等操作。
组成
服务节点:
服务节点可以认为是服务所实际运行的一个具体的操作系统实例,
可以是物理主机或者虚拟主机、云主机。
随着服务的种类扩展和规模扩大,
服务节点可能成千上万甚至数以十万计。
每台服务节点上均有一个Node服务节点和N(N>=0)个业务服务节点
1. 一个Node服务节点
Node服务节点会对业务服务节点进行统一管理,
提供启停、发布、监控等功能,同时接收业务服务节点上报过来的心跳。
2. N(N>=0)个业务服务节点
业务服务