Spring Cloud Ablibaba 学习系列文章

news2024/11/24 14:25:23

前言:

最近发现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官网的给出的架构图如下:

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

图中深色的部分,其实就是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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/4829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C. Crossword Validation(字典树)

Problem - C - Codeforces 题意: 你得到了一个在NN网格上完成的填字游戏。每个单元格要么是填有字母的白色单元格,要么是黑色单元格。你还会得到一本包含M个不同单词的字典,其中每个单词都有一个与之相关的分数。网格中的一个横向候选词是在网格的同一行…

Android TCPIP常见问题

book: Understanding Linux Network Internals socket读写错误返回值:errno TCP: Robert Elliot Kahn IP: Robert Elliot Kahn, Vint Cerf 1 RFC规范 RFC793:TCP RFC768:UDP RFC791:IP RFC826:ARP RFC792:I…

请求转发与请求重定向的区别

目录 1.实现 2.具体区别 1.有关实现 请求转发与重定向分别对应forward 和 redirect两个关键字,接下来我们在Java中尝试去实现一下。 1.1 请求转发 我们一般使用两种方式实现,具体代码见下: RequestMapping("/fw")public Strin…

【C】语言文件操作(一)

🙈个人主页: 阿伟t 👉系列专栏:【C语言–大佬之路】 🎈今日心语:越忙,越要沉住气! 本章重点 : 为什么使用文件什么是文件文件的打开和关闭文件的顺序读写文件的随机读写文本文件和…

Netty之I/O模型

UNIX提供的5种IO模型: 阻塞模型 阻塞IO模型: IO复用模型: 信号驱动IO模型: 对于五种IO模型我这里用自己的白话再复述一遍,加深理解,如果要看权威的解释可以自己去看《Netty权威指南》。 阻塞IO 进…

【算法】树状数组数据结构

文章目录Part.I 预备知识Chap.I 一些前提和概念Chap.II lowbit 函数Part.II 树状数组Chap.I 树状数组的思想Chap.II 树状数组的构造Part.III 树状数组的应用Chap.I LeetCode: 2426. 满足不等式的数对数目Sec.I 题目描述与分析Sec.II 代码实现Chap.II LeetCode: 51. 数组中的逆序…

计算机网络-网络层(ARP协议,DHCP协议,ICMP协议)

文章目录1. ARP协议2. DHCP协议3. ICMP协议1. ARP协议 首先数据在从网络层向下传递到数据链路层,在数据链路层中,要给报文封装源MAC地址和目的MAC地址。 其中获取目的MAC地址就是通过ARP协议 首先:每台主机都有一个ARP高速缓存&#xff08…

【VC++】字符串详解窗口第一个windows程序

注:最后有面试挑战,看看自己掌握了吗 文章目录系统调用顺序对比怎样避免确实动态链接库基本知识类型列表指针类型匈牙利标记法字符串详解Unicode 和 ANSI 函数TCHARs窗口WinMain我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻&#xf…

微信小程序开发(超详细保姆式教程)

介绍: 微信里面app,16年推出 竞品:支付宝小程序,钉钉,美团,头条,抖音qq小程序 优点 1,在微信里面自由分享,2,不用下载app,3,能快速的开发&#xf…

【MySQL】如何把Windows上的MySQL数据库迁移到Linux服务器上

目录1. 前言2. 物理备份与逻辑备份3. mysqldump实现逻辑备份4. 逻辑恢复1. 前言 最近在学黑马的《瑞吉外卖》,前期的基础版本一致在 Windows 电脑上开发,包括 MySQL 数据库也是安装在 Windows 电脑上。最近才学到优化篇,安装了 Linux 虚拟机…

【成为红帽工程师】第二天 ssh远程连接服务器

目录 一、远程连接服务器 二、连接加密技术 三、ssh远程连接服务 四、sftp用法介绍 五、相关实验 一、远程连接服务器 (一)什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机…

2022年最新山东交安安全员模拟真题及答案

百分百题库提供交安安全员考试试题、交安安全员考试真题、交安安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 43.危险性较大工程专项施工方案需要论证的,应当由建设单位组织召开专家论证会。 答案&#…

计算机毕业设计SSM财务管理系统【附源码数据库】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

计算机毕业设计SSM城市智能公交系统【附源码数据库】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

MyBatis(4)---多表查询

多表查询: 一对一:一篇博客对应着一个作者 一对多:一个作者对应着多篇博客 ResultMap和ResultType的区别: 1)字段映射不同:resultType适用于数据库字段名和实体类的名字是相同的,但是假设实体类的名字叫做username,但是数据库的名字是name,这…

MyBatis(3)

我们在进行指定ID进行删除的时候还可以加上一个属性:表示要传递的参数的类型是啥 <delete id"Delete" parameterType"java.lang.Integer">delete from user where userID#{userID}</delete> 我们现在先实现一个场景----我们来进行查询一下User…

【毕业设计】大数据共享单车数据分析系统 - python

文章目录0 前言1 项目背景2 项目分析思维导图3 项目分析具体步骤3.1 读取数据3.2 数据分析3.1.1 数据预处理——每日使用量分析3.1.2 连续7天的单日使用分析结论3.1.3 数据预处理——每日不同时间段的使用量分析3.1.4 每日不同时间段使用量分析结论3.1.5 数据预处理——骑行距离…

【C++】智能指针

一、资源的管理 RAII:Resource Acquisition Is Initialization的简称&#xff0c;其翻译过来就是“资源获取即初始化”&#xff0c;即在构造函数中申请分配资源&#xff0c;在析构函数中释放资源&#xff0c;它是C语言中的一种管理资源、避免泄漏的良好方法。 C语言的机制保证…

python快速实现简易超级玛丽小游戏

《超级玛丽》是一款超级马里奥全明星的同人作品&#xff0c;也是任天堂公司出品的著名横版游戏。 《超级马里奥》是一款经典的像素冒险过关游戏。最早在红白机上推出&#xff0c;有多款后续作品&#xff0c;迄今多个版本合共销量已突破4000万套。其中的主角马里奥、路易、碧琪…

[附源码]计算机毕业设计JAVAjsp闲置物品线上交易系统

[附源码]计算机毕业设计JAVAjsp闲置物品线上交易系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM …