Spring Cloud微服务技术栈学习(导读)

2023-11-12

前言

记录Spring Cloud微服务技术栈相关知识。

微服务架构解决方案

常见的微服务架构方案有四种,分别是ZeroC lceGrid、基于消息队列、DockerSwarm和Spring Cloud。下面主要学习Spring Cloud解决方案。

什么是spring cloud

  • Spring Cloud是一个基于SpringBoot实现的云应用开发工具,是一系列框架的集合,当添加这些工具库到应用后会增强应用的行为。SpringBoot秉持约定优于配置的思想,因此可以利用这些组件基本的默认行为来快速入门,并在需要的时候可以配置或扩展,以创建自定义解决方案。
  • Spring Cloud利用Spring Boot的开发便利性,巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以基于Spring Boot组件进行开发,做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前比较成熟、经得起实际考验、优秀的开源服务框架组合起来,通过Spring Boot进行封装,屏蔽掉复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

以下为Spring Cloud的核心功能:

  • 分布式/版本化配置
  • 服务注册和发现
  • 服务路由
  • 服务和服务之间的调用
  • 负载均衡
  • 断路器
  • 分布式消息传递

还有很多基础的功能没有列出,每个功能对应Spring Cloud中的一个组件,包括Spring Cloud Config、Spring Cloud Netflix (Eureka、Hystrix、Zuul、Archaius…) . Spring Cloud Bus等组件。

技术组件

在这里插入图片描述

概念区分

1、spring cloud alibaba与spring cloud netflix

spring cloud alibabaspring cloud netflix分别是两家公司(阿里和Netflix)对微服务系系列技术栈的两种实现方式。

2、微服务技术之间的关系

  1. nacos是注册中心:所有的服务都会注册到nacos里面去;但是光注册不行,服务之间应该如何调用呢?因此引出ribbon
  2. ribbon是负载均衡+远程调用(HttpURLConnectio):如果A服务做了集群部署,那么B服务想要调用A服务具体哪个机器是由ribbon负责;但是ribbon的方式进行服务调用太麻烦,因此引出fei’g’n
  3. feign替换ribbon:feign的使用比ribbon要简单;feign底层集成了ribbon,同样具备负载均衡功能;
    Spring Cloud openfeign对Feign进行了增强,使其支持Spring MVC注解,另外还整合了Ribbon和Eureka,从而使得Feign的使用更加方便。

3、springcloud是通过http协议通讯的

Spring Cloud也是⼀种RPC框架,但是区别是它使⽤的是http协议的传输,整体技术和普通RPC如dubbo/thrift有很⼤区别,所以⼀般会分开说。但实际上⽐如美团的pigeon类似于dubbo,但是它也是⽀持http协议调⽤的。

4、RestTemplate

在服务的调用过程中,使用到了一个工具,叫做RestTemplate,RestTemplate 是由 Spring 提供的一个 HTTP 请求工具。在上文的案例中,开发者也可以不使用 RestTemplate ,使用 Java 自带的 HttpUrlConnection 或者经典的网络访问框架 HttpClient 也可以完成上文的案例,只是在 Spring 项目中,使用 RestTemplate 显然更方便一些。

RestTemplate 用法详解

一、Nacos(阿里 - 注册中心)

1、学习笔记

微服务架构介绍

01 Alibaba微服务组件Nacos注册中心实战

代码位置:
D:\A-MyFileSpace\MyIdeaSpace-demo\xxxx-4-micro-service\03\vip-spring-cloud-alibaba

2、相关文档

Nacos官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html

3、安装教程

Nacos安装教程(Windows版本、Linux版本)
Nacos - nacos-mysql.sql源文件与application.properties配置文件

二、Ribbon(阿里 - 负载均衡器+远程调用服务)

  • 阿里的Ribbon是基于Netflix的Ribbon开发;
  • Nacos依赖于Ribbon;

1、学习笔记

02 微服务负载均衡器Ribbon实战
02-1 微服务负载均衡器LoadBalancer实战
a、ribbon和loadbalancer都是springcloud的负载均衡组件

代码位置:
D:\A-MyFileSpace\MyIdeaSpace-demo\xxxx-4-micro-service\04\vip-spring-cloud-alibaba (2)

2、相关文档

客户端负载均衡Ribbon
如何选择ribbon还是loadbalancer

三、Feign(Netflix - 替换Ribbon)

  • Feign其实不是做负载均衡的,负载均衡是Ribbon的功能, Feign只是集成了Ribbon而已。但是负载均衡的功能还是Feign内置的Ribbon再做,而不是Feign。

  • Feign的作用是替代RestTemplate, Feign的性能比较低,但是可以使代码可读性很强。

  • Ribbon的负载均衡策略,默认的常见有随机规则,轮询规则,权重规则
    随机不用说,轮询也不用说,权重意思是,请求时间越久的server,其被分配给客户端使用的可能性就越低。

  • Ribbon也可以自定义策略。具体方法包括:
    方法1.实现IRule接口
    方法2.集成AbstractLoadBalancerRule 、PredicateBasedRule。
    只要在配置中自动注入自定义的策略bean就可以。

1、学习笔记

03 微服务调用组件Feign实战

个人博客 - Spring Cloud - OpenFeign使用
OpenFeign 入门教程 - 基础篇

2、相关文档

OpenFeign中文文档

3、安装教程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Cloud微服务技术栈学习(导读) 的相关文章

  • SpringBoot下swagger3.0的配置

    SpringBoot下swagger3 0的配置 1 swagger3 0依赖 2 swagger配置类 3 我的application yml配置 4 访问地址 5 Swagger注解说明 1 swagger3 0依赖
  • 初学者必看!我的第一个Invideo人工智能文字生成视频

    这是一个使用人工智能生成视频的在线平台 主要功能包括 视频脚本自动生成 可以通过输入主题 由AI自动生成视频故事剧本 人声合成 支持上传脚本 AI会合成自然的人声进行朗读 视频制作 有多种视频模板可选择 支持上传自己的素材 一键生成完整视频
  • 三十多岁的我,为了生活转行Java,开始我的小白之路!

    看你35岁要从体制里出来学java 而且看样子已经下定决心了 我真的替你感到悲哀 我也是java培训出来 转行到互联网的 所以我觉得我可以回答这个问题 跟我一起培训的同学大部分也还在做 我们这些人有的是24岁刚毕业出来的 有的是毕业两年三年
  • C#程序用Settings读取和保存参数

    C 程序用Settings读取和保存参数 通常比较大型的程序开发时 需要读取和保存许多用户设置的参数 比如数据文件夹路径 程序界面的颜色 字体名称 大小等 这些信息怎么能够方便的进行设置和保存呢 在C 开发程序时 可以用系统自带的Setti
  • 智能化工作流程,工作效率开始“狂飙”!|Parabola

    随着 AI 功能的日益强大 能够帮忙人们解决的工作问题越来越多 这也不可避免地引发了一场工作效率革命 尤其助力智能化工作流程的建立 Parabola Parabola是一款强大的自动化处理工具 能够帮助用户轻松地进行数据处理 转换和分析而无

随机推荐

  • Java有哪些自定义异常处理方式

    在Java中 异常是一种常见的处理机制 当程序运行出现错误时 Java会默认抛出一个异常 并通过栈回溯信息提供错误详情 从而让开发人员知道程序何时 为什么以及在哪里发生异常 然而 这仅仅是Java内置异常处理的一部分 Java也提供了许多自
  • Unity使用Xcode将项目打包成IPA

    Unity是个开放性的平台 打包时也可以选择多种打包类型 几乎包含了所有的平台 目前主流Android iOS平台 Android平台可以直接使用Unity自行打包 但iOS平台需要借助Mac电脑进行打包 本博客就iOS打包进行一个简单的说
  • C++知识点总结(三)

    1 什么是二叉搜索树 二叉搜索树又称二叉排序树 它或者是一棵空树 或者是具有以下性质的二叉树 若它的左子树不为空 则左子树上所有节点的值都小于根节点的值 若它的右子树不为空 则右子树上所有节点的值都大于根节点的值 它的左右子树也分别为二叉搜
  • [转] Hyper-V Cluster Shared Volume(叢集共用磁碟區)原理初探

    原文地址 http www dotblogs com tw daniel07793 archive 2012 05 19 72265 aspx 這篇是要來解說Hyepr V在運用Cluster Shared Volume的一些原理 可以先參
  • 【牛客讨论区】第三章:开发社区核心功能

    目录 1 过滤敏感词 2 发布帖子 2 1 dao 2 2 service 2 3 controller 3 帖子详情 4 事务管理 5 显示评论 5 1 实体类 5 2 dao 5 3 service 5 4 controller 6 添
  • 详细讲解SpringBoot快速入门

    https blog csdn net m0 37106742 article details 64438892
  • Open3D(C++) 读取、可视化并保存点云

    目录 一 主要函数 1 读取点云 1 1 从文件中读取点云 1 2 从扩展名中读取点云 2 保存点云 2 1 直接保存 2 2 根据扩展名保存 3 显示点云 二 代码实现 包括读取txt格式 1 读取常见点云 2 读取txt格式的点云 三
  • CRMEB Pro2.0多门店版商城系统源码

    CRMEB Pro2 0多门店版商城系统源码 支持公众号 H5 小程序 PC 模板需另行购买 APP 首页DIY id 665343205554
  • 云服务器怎么弄mac系统,mac系统在云服务器

    mac系统在云服务器 内容精选 换一换 本地Windows操作系统主机 推荐使用 方法1 使用RDP文件登录在控制台单击 远程登录 下载RDP文件至本地 运行RDP文件 输入密码 密钥鉴权方式请先获取登录密码 登录远程桌面 详细操作请参考使
  • 扫盲系列(4):数据仓库ETL流程和ETL工具推荐

    目录 1 数据抽取 2 数据转换 3 数据加载 4 数据仓库ETL工具推荐 结构化数据ETL工具 非结构化 半结构化数据ETL工具 1 数据抽取 数据源是指存储数据的源头 包括结构化数据 半结构化数据 非结构化数据等 1 结构化数据 可以采
  • 一款经典的ThinkPhp6开发的CMS内容管理系统

    项目介绍 一款 PHP 语言基于 ThinkPhp6 x Layui MySQL等框架精心打造的一款模块化 插件化 高性能的前后端分离架构敏捷开发框架 可用于快速搭建前后端分离后台管理系统 本着简化开发 提升开发效率的初衷 框架自研了一套个
  • Oracle下载安装:

    一 Oracle老版本11g下载地址 https www oracle com cn database technologies microsoft windows html 二 安装 解压到同一目录 在解压文件夹中找到可执行文件 setu
  • angular快速入门教程

    angular 安装 1 安装node js 2 安装angular npm i g angular cli 3 创建项目 ng new 项目名 4 文件结构 e2e 测试目录 src index html 网站主页面 main ts 应用
  • React:主题切换

    效果图 useTheme import useState useEffect useRef from react const useTheme active theme gt const LOCAL KEY theme 如果浏览器存有 LO
  • VBA的常见语法整理

    1 for循环 2 字符串连接符 Dim i For i 1 To 10 Cells i 2 第 i 行 Next i 3 设定必须显式声明变量 Option Explicit 4 while循环 Dim j j 1 While Cells
  • GD32单片机USB HID模式连续发送多包数据,出现丢包现象

    项目背景 产品使用GD32F103单片机实现USB HID模式 周期发送数据包 在特定情况下 需要连续发送三包数据 测试发现 只接收到了最后一包数据 前面的数据丢失了 故障排查 原发送函数如下 再调用custom hid report se
  • volatile、ReentrantLock和synchronized保证线程可见性原理

    主存 工作内存 在了解什么是线程可见性前 我们先来简单了解下 Java内存模型 的主存 工作内存抽象概念 主存 存储的是一些共享资源的存储位置 例如静态变量等 工作内存 每个线程对应的栈内存对应的私有局部资源的存储位置 我们来分析一个小案例
  • 浅识:元组、字典和集合

    目录 一 轻量性列表 元组 一 了解 元组 二 简单的元组操作 三 可哈希对象 二 映射类型 字典 一 了解 字典 二 字典的操作 三 无序可变序列 集合 一 了解集合 二 集合操作与运算 一 轻量性列表 元组 一 了解 元组 列表的功能十
  • Mac下jdk的安装路径

    http hi baidu com liouyan9 blog item 78fdc009b97bdac63ac76377 html Mac下jdk的安装路径 2009 08 11 15 39 苹果系统已经包含完整的J2SE 其中就有JDK
  • Spring Cloud微服务技术栈学习(导读)

    目录标题 前言 微服务架构解决方案 什么是spring cloud 技术组件 概念区分 1 spring cloud alibaba与spring cloud netflix 2 微服务技术之间的关系 3 springcloud是通过htt