DevilKing's blog

冷灯看剑,剑上几分功名?炉香无需计苍生,纵一穿烟逝,万丈云埋,孤阳还照古陵

0%

Tars Intro

原文链接

微服务框架大体可以分为以下四个种类

第一类是无服务治理的,这一类基本可以看做是一个RPC框架。RPC发展到现在已经有几十年的时间了,主要代表为gRPC、BRPC、Thrift,它们也都有对外开源的代码。

第二类是带治理功能,但是语言比较单一,主要的代表是以Java为主的Spring Cloud、dubbo等。

第三类就是Service Mesh,主要代表产品是Linkerd和ISTIO,这是未来的发展方向。

最后就是TARS,不仅支持多语言,还附带一些服务治理相关的功能产品。

服务配置管理,分为应用配置,SET配置,服务配置,和节点配置

image-20201023165526802

GRPC

服务的实现主要依赖于gRPC拦截器的实现,通过拦截器可以实现远程日志、监控上报、链路追踪等服务。gRPC可以在RPC调用前触发注册的拦截器,在调用前可以执行远程日志上报等等功能,通过多种拦截器串行,实现一个拦截器链路,最终实现各种插件。

image-20201023165920925

service mesh部分:

每个服务下面都有一个Proxy,Proxy就是Sidecar,用于处理服务网格中所有服务的所有入站和出站流量。Proxy把所有的头转给Mixer,Mixer是负责提供策略控制和遥测收集的组件服务,这一块是做数据平面的一些操作。接着是Adapter,为Mixer提供扩展服务的独立服务,比如做一些远程负载均衡的流量控制。以这一套架构作为分布式体系的一部分,能大幅度降低许多单体应用的开发成本。

Pilot主要职责是向 Sidecar 发现服务、信息和各种流量管理和路由规则,Galley服务提供配置的校验、各种配置之间统筹,为 Istio 提供配置管理服务,Citadel用于密钥管理和证书管理,下发到Sidecar等负责通讯转发的组件。