拥抱ServiceMesh-传统微服务框架的技术演进之路.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Service Mesh是现代云原生应用中处理服务间通信的一种专门基础设施层。它负责在构成复杂拓扑的服务之间可靠地传递请求。在实际应用中,服务网格通常通过轻量级网络代理实现,这些代理与应用程序代码一起部署,而应用本身无需了解服务网格的存在。这一概念由William Morgan提出的,强调了服务网格在解耦服务间通信复杂性上的作用。 服务网格主要分为两个部分:数据平面(Data Plane)和控制平面(Control Plane)。数据平面通常由一系列网络代理,如Envoy这样的sidecar代理组成,它们与每个服务实例并行运行,处理服务间的通信。控制平面则负责策略制定、配置管理和整体监控,包括服务发现、负载均衡、熔断、限流等。 Istio是一个广泛应用的服务网格实现,它整合了多个组件,如: 1. **服务发现**:Istio支持多种服务发现机制,如Kubernetes的服务发现、Java SDK和Go SDK,允许服务实例注册和发现。 2. **配置中心**:如Apollo或华为CSE,用于存储和分发服务的配置信息。 3. **注册中心**:例如Consul、Eureka等,用于维护服务实例的元数据和健康状态。 4. **sidecar注入**:通过Kubernetes的sidecar-injector,可以在Pod创建时自动注入Envoy sidecar代理。 5. **API Server**:处理xDS API,将控制平面的配置推送到数据平面的sidecar代理。 Istio的数据平面使用Envoy代理,它具有强大的功能,如: - **HTTP/GRPC请求处理**:Envoy代理能够处理HTTP和GRPC等不同协议的请求。 - **调用链路追踪**:支持与Zipkin、Prometheus和Grafana等监控工具集成,进行分布式跟踪。 - **流量管理**:包括速率限制、负载均衡、故障注入等,确保服务的稳定性和弹性。 - **服务注册与发现**:Envoy通过与服务发现系统交互,动态感知服务实例的变化。 - **多语言SDK**:提供Java和Go等语言的SDK,简化服务集成。 控制平面中的组件包括: - **Istio Pilot**:负责服务发现、路由规则和流量管理策略的配置。 - **Mixer**:处理服务之间的策略执行和遥测数据收集,但现代版本中逐渐被其他组件取代。 - **Kubernetes webhook**:利用Kubernetes的Mutating Admission Webhook特性,实现sidecar注入。 服务网格的引入,特别是Istio的使用,为云原生环境带来了显著的优势,包括更好的服务治理、更细粒度的安全控制以及更高效的跨平台兼容性。它不仅适用于Kubernetes,也能部署在虚拟机、裸金属服务器和多云环境中。然而,服务网格也带来了一定的复杂性,如资源消耗增加、运维挑战等,因此在采用时需要根据具体业务需求和环境进行权衡。
剩余20页未读,继续阅读
- 施智沂2022-05-19用户下载后在一定时间内未进行评价,系统默认好评。
- 粉丝: 48
- 资源: 8282
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Vue+NodeJS的学生社团管理系统(前后端代码)
- 基于SSM+JSP的快递管理系统(前后端代码)
- 全球火点数据-modis-2015-2023年
- YOLOv8完整网络结构图详细visio
- LCD1602电子时钟程序
- 西北太平洋热带气旋【灾害风险统计】及【登陆我国次数评估】数据集-1980-2023
- 全球干旱数据集【自校准帕尔默干旱程度指数scPDSI】-190101-202312-0.5x0.5
- 基于Python实现的VAE(变分自编码器)训练算法源代码+使用说明
- 全球干旱数据集【标准化降水蒸发指数SPEI-12】-190101-202312-0.5x0.5
- C语言小游戏-五子棋-详细代码可运行