高并发系统学习 Day4 Service Mesh

106 阅读2分钟
Service Mesh是微服务架构中的一种重要实现方式。它通过在服务之间部署一层代理(Sidecar)来管理微服务     间的网络通信。主要功能包括:
    1. 流量管理:可根据规则路由流量,并进行重试、超时、熔断等操作。
    2.Observable性:通过 metrics、tracing 和 logs 提供运行时的可观察性。
    3. 安全性:支持 mTLS 等加密通信方式。
    4. 一致性:支持基于服务或用户的流量治理,保证系统的高可用性和一致性。
    常见的Service Mesh解决方案有:
    1. Istio:由谷歌推出的Service Mesh框架,功能最为强大。
    2. Linkerd:由Buoyant推出,轻量级、专注于基础功能。
    3. Consul Connect:HashiCorp推出,依赖Consul进行服务发现。
    4. AWS App Mesh:Amazon推出的Service Mesh解决方案,集成于AWS环境。
    
如何将流量转发到 Sidecar 中:
    第一种,使用 iptables 的方式来实现流量透明的转发,而 Istio 就默认了使用 iptables 来实现数据包的转发。
    

image.png

    另外一种方式:轻量级客户端。在这种方式下,RPC 客户端会通过配置的方式,知道 Sidecar 
    的部署端口,然后通过一个轻量级客户端,将调用服务的请求发送给 Sidecar。Sidecar 在转发
    请求之前,先执行一些服务治理的策略,比如,从注册中心中查询到服务节点信息并且缓存起来,
    然后从服务节点中,使用某种负载均衡的策略选出一个节点等等。请求被发送到服务端的 Sidecar 
    上后,然后在服务端记录访问日志和分布式追踪日志,再把请求转发到真正的服务节点上。

此文章为6月Day4学习笔记,内容来源于极客时间《高并发系统设计 40 问》