(这期先了解Dapr,之后在推出如何搭建Dapr,以及如何使用。Dapr(二) 分布式应用运行时搭建及服务调用--Dapr(二) 分布式应用运行时搭建及服务调用-CSDN博客,Dapr(三) Dapr核心组件的使用一--Dapr(三) Dapr核心组件的使用一-CSDN博客) Dapr(四) Dapr核心组件的使用二(Dapr(四) Dapr核心组件的使用二-CSDN博客)
目录
Dapr 核心:Component & Building Block
引言:
从 2010 年的时候,SOA 架构就已经在中大型互联网公司中开始流行,阿里也在2012 年开源了 Dubbo 。而之后微服务架构开始流行,大量互联网和传统企业都投身到微服务的建设中。在国内逐渐形成了Dubbo 和 Spring Cloud 两大微服务阵营。在2016 年的时候,微服务领域一个更具有前沿性,更加符合容器和 Kubernetes 的微服务方案正在孕育,这个技术被称为 Service Mesh(服务网格)。时至今日,Service Mesh 理念已经得到了大范围普及,很多公司都在 Service Mesh 领域有了落地。
Service Mesh定义
Service Mesh 是一个基础设施层,主要围绕服务间通信来进行。现在的云原生应用的服务拓扑结构非常复杂,Service Mesh 可以在这种复杂拓扑结构中实现可靠的请求传送。Service Mesh 是以 Sidecar 的方式运行,应用旁边会运行一个独立的 Service Mesh 进程,Service Mesh 负责远程服务的通信。军用三轮摩托车和 Service Mesh 非常相像,军用三轮摩托车上一个士兵负责开车,一个士兵负责对人发起射击。
- 服务注册与发现
- 服务之间调用
- 服务之间降级,熔断
- 服务之间链接追踪
- 服务监控
Service Mesh解决的痛点
传统的微服务架构大都以 RPC 通信框架为基础,在 RPC SDK 中提供了服务注册/发现,服务路由,负载均衡,全链路跟踪等能力。应用业务逻辑和 RPC SDK 在同一个进程中,这种方式给传统微服务架构带了很多挑战:中间件能力相关代码侵入到了业务代码中,耦合性很高;推动 RPC SDK 的升级成本非常高,进而也导致了 SDK 版本分化非常严重。同时这种方式对应用开发者的要求比较高,需要有丰富的服务治理的运维能力,有中间件的背景知识,使用中间件的门槛偏高。
通过 Service Mesh 方式将一些 RPC 的能力进行下沉,这样可以很好的实现关注点分离、职责边界的明确。随着容器和 Kubernetes 技术的发展,Service Mesh 已经成为云原生的基础设施。
Istio介绍
在 Service Mesh 领域中, Istio 毫无疑问是当中的王者。Istio 由控制面和数据面构成,在 Service Mesh 中,不同的 Service 之间,通过 Proxy Sidecar 进行通信。Istio 最核心功能是流量管理,通过数据面和控制面协调完成。Istio 是由 Google 联合IBM,Lyft 一起发起的,是 CNCF 生态版图 Service Mesh 领域的最纯正血统,有望成为Service Mesh事实标准。
Istio 的数据面默认使用 Envoy,Envoy 是社区里默认的最佳数据面。Istio 数据面和控制面的交互协议是 xDS。
Service Mesh小结: