Spring Cloud Ablibaba 学习系列文章

简介: Spring Cloud Ablibaba 学习系列文章

前言:

最近发现Spring Cloud的应用越来越多了,微服务的概念在一般的互联网公司上面几乎都会使用到,于是准备一套Spring Cloud Alibaba的学习文章,文章写到一定阶段,会进行实战篇,比如搭建注册通信的框架,以及微服务之间如何进行发现以及通信的处理。

框架篇

Spring到Spring Boot,随着Spring的不断发展,越来越多的组件集成到框架中。Spring框架也从一个小巧的IOC容器变成了一套大而全的框架集合。开发人员为了实现组件的整个工作,往往需要在xml文件、java注解中完成各种bean的配置,从而使的Spring的使用越来越难,大大降低了开发的效率。

使用Spring Boot可以大大的简化Spring应用的开发工作,在Spring Boot中无论官方组件还是框架都会提供各种start来方便开发者来依赖和集成。由于采用了依赖约定大于配置的思想,开发者可以做很少的配置工作就可以完成框架集成的工作,往往开发者只需要很少的代码量就可以实现以前大量配置文件才能做到的功能。

同时Spring Boot还是一套面向生产环境设计的框架,配置外化,运行情况检查功能,可以很方便的在系统外部实现对系统的管理。同时SpringBoot还是一个运行时容器。通过内嵌Tomcat等使程序的运行不在依赖传统的应用服务器。这一点在云原生很有 意义

Spring 官方对Spring Boot的特色如下:

    1. 创建独立的Spring的应用程序
    2. 直接嵌入Tomcat
    3. 提供依赖项,简化构件配置
    4. 尽可能自动配置Spring和三方类库
    5. 提供可用于生产的功能,例如指标,运行状况检查和外部化配置
    6. 完全没有代码生成,也不需要xml配置

    spring官网的给出的架构图如下:

    image.gif编辑

    Spring Cloud是一系列Microservice,微服务的实现,围绕这些微服务做各种的辅助信息的功能。例如:分布式跟踪、服务注册、配置服务等,都围绕微服务所依赖的支持特性功能,Spring Cloud是以微服务为核心分布式系统的一个构件标准。

    image.gif编辑

    图中深色的部分,其实就是Spring Cloud的标准,一共有三层,中间颜色最深的部分就是整个微服务最核心的部分,包括了rpc调用一级服务注册与发现。第二层,也就是围绕着最核心的这一圈,是一些辅助微服务更好的工作,包括了负载均衡、路由、网关、断路器,还有就是追踪等等这些内容。再外层的话,主要是写分布式云环境里面的通用能力

    最外面的这一圈,是Spring Cloud Alibaba对Spring Cloud的实现。右上部分是对于Spring Cloud标准的实现。

    目前,Spring Cloud Alibaba包含以下组件:

    开源部分:

      1. Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性
      2. Nacos:一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台
      3. RocketMQ :一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务
      4. Dubbo:Apache Dubbo是一款高性能JAVA RPC框架
      5. Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案

      平台服务部分

        1. Alibaba Cloud OSS:阿里云对象存储服务(Object Storage Service,简称OSS),是阿里巴巴提供的海量、安全、低成本、高可靠的存储服务。在任何应用、任何时间、任何地点存储和访问任意类型的数据。
        2. Alibaba Cloud Schedule X:阿里中间件团队开发一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时任务调度服务
        3. Alibaba Cloud SMS:覆盖全球的短信服务、友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道

        分布式配置

          1. 简介:
              1. Nacos提供用于存储配置和其他元数据的Key、Value存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用Spring Cloud Alibaba Nacos Config,可以在Nacos Server集中管理Spring Cloud应用的外部属性配置
              2. Spring Cloud Ablibaba Nacos Config是Config Server和Client的替代方案,客户端和服务器上的概念与Spring Environment和PropertySource有着一致的抽象,在特殊的bootstrap阶段,配置被加载到Spring环境中。当应用程序通过部署管道从开发到测试再到生产时,可以管理这些环境之间的配置,并确保应用程序具有迁移时需要运行的所有的内容。Nocos的获取和启动方式可以参考官网
                  1. 学习目标
                      1. 使用Nacos Config作为Spring Cloud分布式配置
                      2. 使用Nacos Config实现Bean动态刷新
                      3. 了解Nacos Config高级配置
                          1. 详细内容
                              1. 快速上手,使用Nacos Config作为外部化配置源
                              2. 多文件扩展名支持:以YAML文件扩展名为例,讨论Nacos Config多文件扩展名支持
                              3. 动态配置更新:演示@ RefreshScope特性,实现Bean动态刷新
                              4. 运维特性:演示Nacos config高级外部化配置以及Endpoint
                                相关文章
                                |
                                13天前
                                |
                                前端开发 Java 开发者
                                Spring生态学习路径与源码深度探讨
                                【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
                                39 9
                                |
                                1月前
                                |
                                前端开发 Java 数据库
                                SpringBoot学习
                                【10月更文挑战第7天】Spring学习
                                36 9
                                |
                                1月前
                                |
                                Dubbo Java 应用服务中间件
                                Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
                                尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
                                |
                                1月前
                                |
                                XML Java 数据格式
                                Spring学习
                                【10月更文挑战第6天】Spring学习
                                21 1
                                |
                                1月前
                                |
                                Java 测试技术 开发者
                                springboot学习四:Spring Boot profile多环境配置、devtools热部署
                                这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
                                62 2
                                |
                                1月前
                                |
                                前端开发 Java 程序员
                                springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
                                这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
                                102 1
                                |
                                1月前
                                |
                                Java API Spring
                                springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
                                这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
                                26 0
                                springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
                                |
                                1月前
                                |
                                Java API Spring
                                springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
                                这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
                                24 0
                                springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
                                |
                                1月前
                                |
                                Java 关系型数据库 MySQL
                                springboot学习五:springboot整合Mybatis 连接 mysql数据库
                                这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
                                79 0
                                springboot学习五:springboot整合Mybatis 连接 mysql数据库
                                |
                                1月前
                                |
                                Java 关系型数据库 MySQL
                                springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
                                这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
                                27 0
                                springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
                                下一篇
                                无影云桌面