基于 OpenSergo 标准构建 Spring Cloud Alibaba 流量路由能力(一)| 学习笔记

简介: 快速学习基于 OpenSergo 标准构建 Spring Cloud Alibaba 流量路由能力

开发者学堂课程【基于 OpenSergo 标准构建Spring Cloud Alibaba 流量路由能力 :基于 OpenSergo 标准构建 Spring Cloud Alibaba 流量路由能力(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1213/detail/18213


基于 OpenSergo 标准构建 Spring Cloud Alibaba 流量路由能力

 

内容介绍:

一、从微服务治理到 opensergo

二、Spring Cloud Alibaba 支持 opensergo 标准

三、opensergo 流量路由 v1alpha1 标准介绍

四、展望与总结

 

今天分享的主题是通过 opensergo 服务治理标准实现 spring cloud Alibaba 流量路由的能力,今天分享分为四个部分来介绍。


一、从微服务治理到 opensergo

首先是为什么需要微服务治理以及 opensergo,第二,就是围绕 Spring Cloud Alibaba Alibaba 来介绍一下 Alibaba支持和 opensergo 标准,第三,就是详细介绍 opensergo 流量路由标准。同时也会简单的演示阿里巴巴在opensergo 流量路由的 stack 的标准来实现流量路由能力的 demo,第四,就是简单的总结与展望。

首先来介绍微服务治理以及 opensergo,讲到微服务,其实越来越多的接触表明微服务的架构让现代高并发低延迟的分布式应用成为可能,但是微服务架构并不是稳定的,随着微服务拆分的进行,业务规模的增长,其实在大规模之下,再小的问题都会牵一发而动全身,因此随着微服务架构带来的复杂度可能会远大于微服务架构本身带来的红利,如果在这个过程中不对微服务进行恰当的治理,其实在微服务的使用过程中,微服务应用的稳定性以及效率都会受到很大的影响,因此用好微服务的挑战就是稳定性与效率的问题。

image.png

在传统的微服务架构中通常将服务调用中的各个角色会分为几个部分,首先是服务提供者,服务消费者,还有注册中心,但随着分布式架构不断演进带来的许多复杂的稳定性跟效率的问题,在微服务架构中原有的模块无法满足架构的演进,在现代的微服务架构中需要一些手段来对复杂的微服务架构进行治理,微服治理通过像全链路灰度,无损伤线路,异常流量调度,数据库流量治理等技术手段来减少甚至和避免发布和管理大规模的应用过程中遇到的稳定性以及效率的问题,本质上来说微服治理就是对微服务领域中的各个组件进行治理因此服务提供者,服务消费者,注册中心,还有服务治理是构成现代微服价格中的重要的几个环节。

image.png

关于微服务治理的重要性已经讲完。可以认为是微服务化深入过程中必备的也是必经的阶段。下面简单的对微服治理的内容进行划分。形态介绍:首先是开发态 dev,是服务元数据信息的,管理服务契约,服务调试,服务 mook,开发环境隔离,端云互联等问题,然后是测试态,有 服务压测,自动化回归,流量录制,流量回放等,发布与运行态ops 包括发布态和运行态,是无损下线,无损上线,金丝雀发布,A\b test,全链路灰度等等,运行态有很多的场景,比如离群实力摘除,流量控制与平滑,熔断降级,同AZ优先路由,就近容灾路由,日志治理,读写流量分离,缓存热点治理,服务鉴权,访问控制等等,其实在此过程中还有遇到过许多问题,比如在企业内部往往存在着不同语言,不同通信协议的微服务,这些异构化的架构会导致在治理微服务的过程中,业务的开发者或者系统的架构师,等他们都没办法用统一的方式来对所有的服务进行管理,管控,并且此类异构的架构,企业也会衍生出更加多的痛点,比如说微服务框架众多,对服务治理缺乏一些标准化的约定,就引出 opensergo 的开源的项目,

image.png

是一套开放,通用,面向分布式应用覆盖全路异构化生态的服务治理标准与参考实现以及最佳实现的提供。第二,问题就是认知不同的问题,企业对微服治理的能力跟边界是没有明确的认识,每个企业所定义的服务治理概念都不一定相同,这会造成很高的理解以及沟通的成本,第三,是真正所需的,是说目前缺少面向业务能够减轻认知负担的抽象和标准,对开发者来说其实真正想要的可能就是简单的指定服务间关系和配置规则,治理的规则,但是目前对于业务开发者来说,不仅需要了解不同微服务框架的部署加购,在过程中还要了解到不同服务治理方式的概念跟能力,总的来说,这一块的认知成本是非常大的,opensergo 是围绕着刚才说的一些痛点所得出来的一套开放通用,面向分布式应用的服务治理标准,有以下四个特点:首先就是标准化,它是基于业界服务治理的场景与最佳实践抽象成通用的标准,统一的服务协议以及 YAML,CRD 标准配置进行管控,降低用户上云与维护的成本。第二,是面向异构化多元的架构,也会通过统一的标准规范来接入治理,来降低维护的成本。无论微服语言是 Java,Go,还是 node,Rust,还是其他语言,无论是传统微服务架构还是 service mesh 的架构,都会用同一套标准来支持。第三,是企业级所需要的,也是最重要的环节,就是服务治理能力是需要全链路生态的覆盖,从网关到微服务,从数据库到缓存,从服务注册发现到配置,opensergo 会针对应用链路上的每环节都进行抽象以及场景完整覆盖。最后,是社区共建的方式,首先 opensergo 是多个厂商,b 站, cut we go,阿里还有 double 等等多个厂商以及社区一起讨论制定的项目,然后共同发起了 opensergo 的 项目,一套开放通用的服务治理标准,并且是基于业内服务治理的场景与实践形成的服务治理通用标准与最佳实践。

image.png

opensergo 最大的特点是一套统一的配置或者协议来定义服务里的规则,面向多源异构化架构,做到全域生态的覆盖,opensergo 标准给服务治理中的相关领域的实践与场景投向,然后覆盖元数据信息以及服务元信息,流量自愈,生命周期管理,微服务零信任体系,服务容错,流量治理等领域,同时也面向微服务所涉及到各组件,比如网关生态,微服务应用生态以及所依赖的数据库缓存消息,配置中心等等的组件,提到的流向思维,COD,阿里巴巴,这个框架会通过 opensergo 的 SDK 对接微服置于的标准与实现,从而实现所需的能力。

image.png 

二、Spring Cloud Alibaba 支持 opensergo 标准

首先是贯穿微服务领域的 opensergo,可以分为以下几个部分:下面是 opensergo 的 spec,用统一的服务协议与mse 标准来定义,中间部分是 opensergo 在各个语言的 SD K,它的作用是提供统一的标准 CAD 对接模块,供顾客框架组件对接 opensergo 的 back,比如要介绍的阿里巴巴就是通过 opensergo 的 SDK 来对接流量治理场景的 spec.

image.png

当然还有 opensergo 的数据面,是一种承载 opensergo spank 的框架组件,都可以通过收购的标准方式来进行统一治理,控制面的作用是来承接这些 speck,控制面会以统一的 apprentice 形式来进行服务,比如,流量路由,流控降级等容错等规则的配置以及服务员信息查询等展示的作用,

image.png

最大的特点就是一套统一的标准的配置方式来面向多源异构化的架构做到全链路生态的能力覆盖,

image.png

比如要提到的微服务中最常用的场景,就是全链路灰度的能力,全链路灰度中最关键的核心就是流量路由,比如说,需要将 grade 流量路由路由至 grade 的环境,打上 grade 标的应用中。

image.png

接下来先简单介绍一下 Spring cloud,是由培训中心,服务发现,路由,服务调用,均衡,留空降级,分布式锁以及消息等一系列的组件构成的分布式的微服务应用,Spring cloud alibaba 是实现了 Spring cloud 的标准,由阿里巴巴中研院团队在2018年7月份开源的为业界提供的一套基于阿里内部分布式技术的一站式微服务的解决方案,基于spring cloud 微服务框架标准,针对微服务架构中的服务注册与发现,分布式消息,服务限流降级以及分布式事务的核心模块,都提供了相应的面对业界的成熟解决方案。Spring cloud alibaba 体系,可以看到在开源这一侧有 Spring cloud double,Seata,sentinal 以及 Spring cloudconflg 等一系列组件,同时在商业化中有 Mse,ARMS 等能力的继承。

image.png

相关文章
|
2月前
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
360 0
|
1月前
|
人工智能 Java Spring
使用 Spring Cloud Alibaba AI 构建 RAG 应用
本文介绍了RAG(Retrieval Augmented Generation)技术,它结合了检索和生成模型以提供更准确的AI响应。示例中,数据集(包含啤酒信息)被加载到Redis矢量数据库,Spring Cloud Alibaba AI Starter用于构建一个Spring项目,演示如何在接收到用户查询时检索相关文档并生成回答。代码示例展示了数据加载到Redis以及RAG应用的工作流程,用户可以通过Web API接口进行交互。
52348 62
|
17天前
|
监控 Java 应用服务中间件
替代 Hystrix,Spring Cloud Alibaba Sentinel 快速入门
替代 Hystrix,Spring Cloud Alibaba Sentinel 快速入门
|
1月前
|
消息中间件 Java 持续交付
Spring Cloud Alibaba 项目搭建步骤和注意事项
Spring Cloud Alibaba 项目搭建步骤和注意事项
223 0
Spring Cloud Alibaba 项目搭建步骤和注意事项
|
1月前
|
存储 SpringCloudAlibaba 关系型数据库
springcloud alibaba(5)
springcloud alibaba
98 0
|
1月前
|
SpringCloudAlibaba Nacos
springcloud alibaba(4)
springcloud alibaba
127 0
|
1月前
|
SpringCloudAlibaba 容灾 测试技术
springcloud alibaba(3)
springcloud alibaba
72 0
|
1月前
|
SpringCloudAlibaba 负载均衡 前端开发
springcloud alibaba(2)
springcloud alibaba
82 0
|
1月前
|
存储 SpringCloudAlibaba Java
springcloud alibaba(1)
springcloud alibaba
59 0
|
2月前
|
消息中间件 SpringCloudAlibaba Java
第十章 SpringCloud Alibaba 之 Nacos discovery
第十章 SpringCloud Alibaba 之 Nacos discovery
31 1