1.Tars协议
首先tars使用的是接口描述语言(idl),使得通过这个接口来进行生成不同的编程语言,供开发使用。优势有:二进制、可扩展、代码自动生成、支持多平台。
2.调用方式
对于服务端来说:服务端只需要完成本地的业务而不必去考虑其他的事情(比如数据传输过程)即可对外界提供服务。
对于客户端来说,有三种调用方式
同步调用,异步调用,单向调用。同步需要等服务返回结果;异步不用等,执行接下来的逻辑,返回结果后回调处理。单向调用,服务端不用返回结果。
3.负载均衡
4.容错保护
两种方式:名字服务排除+client主动屏蔽
1.业务服务会主动发送消息,来让名字服务知道业务服务没有挂掉,当业务服务挂掉时,registry则将不再发送给client相应的业务地址,达到容错保护,时间大概在1分钟
2.client根据调用的服务是否异常(超时比率高)来主动对服务进行屏蔽。
5.过载保护
实现一个请求队列,队列的大小有限制,超过拒绝请求,请求是否超时,超时不做处理,这些防止对服务器造成大的压力。
6.消息染色
框架对某服务的某接口进行染色,在染色服务器上就可以分析请求访问的路径,可以方便跟踪定位问题。
7.IDC分组
加快访问速度,防止跨地区,跨机房,提供就近接入功能
8.set分组
为了方便对业务服务部署管理进行标准化和容量化,框架提供了Set部署能力,set之间没有调用关系,互不干扰,故障隔离,提高运维效率和服务可用性