网站首页 > 文章精选 正文
ServieMesh是云原生非常核心的组件,也是未来微服务的发展重心,下面我就全面来详解ServieMesh@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
ServiceMesh定义
ServiceMesh被认为是新一代微服务架构,主要用于管理、和控制微服务架构中,服务间通信的基础设施层。
服务网格(Service Mesh),“服务”和“网格”是两个关键概念,它们共同构成了服务网格的核心理念和功能。
如下图所示:
上图所示,主要包含:深色服务(业务微服务),旁边蓝色是网格(边车Sidecar服务)。
在微服务架构中,“服务”:指的是系统中的一个功能单元或模块,它通常是一个独立部署的服务实例,通过网络接口提供特定的功能、或服务。
在服务网格中,“网格”:指的是微服务架构中的服务实例之间的通信网络、和拓扑结构。
服务网格通过在服务之间插入代理(通常是 sidecar 代理),形成了一个透明的、可编程的通信网络。
为什么需要ServiceMesh
在传统的服务治理中,服务框架的 SDK 负责处理服务注册、服务发现、负载均衡、故障恢复等任务,这使得业务代码与特定的服务框架紧密耦合。
为了解决这个问题,服务网格的出现提供了一种更为灵活和可控的服务治理方式。
服务网格通过在服务之间插入专用的代理(如 sidecar 代理),将通信逻辑从业务代码中分离出来,使得业务代码无需关心服务治理的具体实现细节。
这种方式使得服务治理能够以一种更为统一和标准化的方式实现,同时也提高了应用程序的灵活性和可移植性。
并且,服务网格作为一种新型的服务治理方式,也能够更好地满足云原生应用的设计理念。
ServiceMesh原理
服务网格(Service Mesh)的原理。主要基于两个关键概念:数据平面(Data Plane)、和控制平面(Control Plane)。
如下图所示:
1. 数据平面(Data Plane)
数据平面负责:拦截、处理和转发进出服务实例的所有流量,同时执行诸如负载均衡、故障恢复、安全策略等任务。
代理,是数据平面的核心组件,通常以 sidecar 代理的形式,部署在每个服务实例旁边。
如下图所示:
代理负责:拦截进出服务实例的所有流量,并执行各种任务,如负载均衡、路由、故障检测、安全策略等。
Sidecar 代理、与业务代码相分离,服务实例的业务逻辑无需感知代理的存在。
所以,这种解耦,可以帮助实现服务间通信的透明性,并使得通信逻辑、与业务逻辑分离。
2. 控制平面(Control Plane)
控制平面,主要用于:配置、监控和管理整个服务网格中的服务间通信。
控制平面由多个子组件组成,这些组件协同工作以实现对服务间通信的配置、路由、监控和安全策略的管理。
比如:
- Pilot :是 Istio 控制平面的核心组件之一,负责服务发现和路由管理。
- Galley :是 Istio 控制平面的配置管理组件,负责处理和验证配置信息。
- Citadel :是 Istio 控制平面的安全组件,负责服务间通信的身份认证和加密。
- Mixer :是 Istio 控制平面的策略执行组件,负责执行访问控制、流量控制等策略。
这些组件通常以一种分布式系统的方式部署和协作,以实现对服务间通信的全面管理、和控制。
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
- 上一篇: 无处不在的云原生到底是什么?
- 下一篇: 什么是云原生,有什么应用优势?
猜你喜欢
- 2025-01-06 什么是云原生,讲述如何学习
- 2025-01-06 何为云原生?
- 2025-01-06 什么是云原生?为啥这么火?
- 2025-01-06 3分钟看懂什么是云原生,通俗化解释
- 2025-01-06 什么是云原生(Cloud Native)架构?
- 2025-01-06 什么是云原生,有什么应用优势?
- 2025-01-06 无处不在的云原生到底是什么?
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)