【Java】SpringCloud基础知识点

news2025/1/17 3:42:04

SpringCloud

  • 什么是SpringCloud
  • 有哪些组件
    • Eureka
    • Ribbon
    • Hystrix
    • Zuul
    • Config
    • Feign

什么是SpringCloud

SpringCloud是一套分布式微服务的解决方案,Spring Cloud 的各个项目基于 Spring Boot,将 Netflix 的多个框架进行封装,并且通过自动配置的方式将这些框架绑定到 Spring 的环境中,从而简化了这些框架的使用。由于Spring Boot 的简便,使得我们在使用 Spring Cloud 时,很容易的将 Netflix 各个框架整合进我们的项目中。
在这里插入图片描述
中文官网地址 :SpringCloud中文官网

有哪些组件

在这里插入图片描述

Eureka

Eureka 提供基于 REST 的服务,在集群中主要用于服务管理。Eureka 提供了基于 Java语言的客户端组件,客户端组件实现了负载均衡的功能,为业务组件的集群部署创造了条件。使用该框架,可以将业务组件注册到 Eureka 容器中,进行集群部署,Eureka 提供的服务调用功能,可以发布容器中的服务并进行调用。
一个简单的 Eureka 集群,需要有一个 Eureka 服务器、若干个服务提供者。

  • 服务端:
    对于注册到服务器端的服务组件,Eureka 服务器并没有提供后台的存储,这些注册的服务实例被保存在内存的注册中心,它们通过心跳来保持其最新状态,这些操作都可以在内存中完成。客户端存在着相同的机制,同样在内存中保存了注册表信息,这样的机制提升了Eureka 组件的性能,每次服务的请求都不必经过服务器端的注册中心。

  • 客户端:
    作为 Eureka 客户端存在的服务提供者,主要进行以下工作:第一、向服务器注册服务;第二、发送心跳给服务器;第三、向服务器端获取注册列表。当客户端注册到服务器时,它将会提供一些关于它自己的信息给服务器端,例如自己的主机、端口、健康检测连接等。

  • 服务调用者:
    对于发布到 Eureka 服务器的服务,使用调用者可对其进行服务查找与调用,服务调用者也是作为客户端存在,但其职责主要是发现与调用服务。在实际情况中,有可能出现本身既是服务提供者,也是服务调用者的情况,例如传统的企业应用三层架构中,服务层会调用数据访问层的接口进行数据操作,它本身也会提供服务给控制层使用。

Ribbon

负载均衡是分布式架构的重点,负载均衡机制将决定着整个服务集群的性能与稳定。
Ribbon 是 Netflix 下的负载均衡项目,它在集群中为各个客户端的通信提供了支持,它主要实现中间层应用程序的负载均衡。

  • Ribbon 提供以下特性:
    1.负载均衡器,可支持插拔式的负载均衡规则。
    2.对多种协议提供支持,例如 HTTP、TCP、UDP。
    3.集成了负载均衡功能的客户端。

Spring Cloud 将 Ribbon 的 API 进行了封装,使用者可以使用封装后的 API 来实现负载均衡,也可以直接使用 Ribbon 的原生 API.

  • Ribbon 主要有以下三大子模块:
    Ribbon-core:该模块为 Ribbon 项目的核心,主要包括负载均衡器接口定义、客户端接口定义,内置的负载均衡实现等 API。
    Ribbon-eureka:为 Eureka 客户端提供的负载均衡实现类。
    Ribbon-httpclient:对 Apache 的 HttpClient 进行封装,该模块提供了含有负载均衡功能的 REST 客户端。

  • Ribbon 的负载均衡器主要与集群中的各个服务器进行通信,负载均衡器需要提供以下基础功能:
    维护服务器的 IP、DNS 名称等信息。
    根据特定的逻辑在服务器列表中循环。

  • 为了实现负载均衡的基础功能,Ribbon 的负载均衡器有以下三大子模块:
    Rule: 一个逻辑组件,这些逻辑将会决定,从服务器列表中返回哪个服务器实例。
    Ping: 该组件主要使用定时器,来确保服务器网络可以连接。
    ServerList: 服务器列表,可以通过静态的配置确定负载的服务器,也可以动态指定服务器列表。如果动态指定服务器列表,则会有后台的线程来刷新该列表。

Hystrix

提供了熔断器功能,能够阻止分布式系统中出现联动故障。

Zuul

Zuul 是由 Netflix 孵化的一个致力于“网关 “解决方案的开源组件。

Config

Spring Cloud 中提供了分布式配置中 Spring Cloud Config ,为外部配置提供了客户端和服务器端的支持。

Feign

Spring Cloud 将 Feign 集成到 netflix 项目中,当与 Eureka、Ribbon 集成时,Feign 就具有负载均衡的功能。Feign 本身在使用上的简便性,加上与 Spring Cloud 的高度整合,使用该框架在 Spring Cloud 中调用集群服务,将会大大降低开发的工作量。

在使用 Feign 时,可以使用注解来修饰接口,被注解修饰的接口具有访问 Web Service 的能力,这些注解中既包括了 Feign 自带的注解,也支持使用第三方的注解。除此之外,Feign还支持插件式的编码器和解码器,使用者可以通过该特性,对请求和响应进行不同的封装与解析。

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

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

相关文章

数据的标准化处理——基于python

数据的标准化处理——基于R归一化(normalization)python实现标准化python实现之前写过用R来进行标准化: 数据的标准化处理——基于R归一化(normalization) 将数据缩放到[0,1]的(min—max Normalization&am…

电脑软件:推荐八款图片处理工具,值得收藏

目录 1、Inpaint 图片去水印神器 2、XnView 图片批量管理工具 3、TinyPNG图片压缩网站 4、IrfanView 5、GIMP 开源图片编辑器 6、Paint.NET 好用的图片编辑软件 7、Optimizilla 图片压缩工具 8、iLoveIMG 在线图片编辑工具 日常办公当中,图片处理是经常要用…

.ttf 字体剔除

想在 游戏/应用 中使用字体,让你的应用提升一个逼格;但是发现一个 .ttf 少则 几兆, 大则 十几兆,这时候可以通过 fontTools,来剔除不需要的畸形字体,保留常用字体; 1. 安装 python 环境 自行安装&#xff…

【JavaSE】类和对象 【this引用和构造方法】(二)

目录 1、this引用 1.1、this的三种用法 1.1.1、this.属性名 1.1.2、this.方法名 1.1.3、this ( ) 访问构造方法 详细讲解 1、this引用 1.1、为什么要有this引用 问题1:形参名不小心与成员变量名形同会发生什么问题? 问题2: 1.2、什…

《前端》css总结(上)

前言: css的定义有很多很多,大家不会的就去这个网站现查一下就好:https://developer.mozilla.org/zh-CN/docs/Web/CSS/text-decoration 文章目录样式定义方式行内样式表(inline style sheet)内部样式表(in…

计算机毕业设计Python+Django的学生作业管理系统

项目介绍 在各学校的教学过程中,学生的作业管理是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及,“基于网络的学习模式”正悄无声息的改变着传统的教室学习模式,“基于网络的教学平台”的研究和设计也成为教育技术领域的热点…

接口高可用

架构决定系统质量上限,代码决定系统质量下限 接口高可用整体框架 雪崩效应:请求量超过系统处理能力后导致系统性能螺旋快速下降 链式效应:某个故障引起后续一连串的故障 限流 用户请求全流程各个环节都可以限流: 请求端限流&a…

区块链溯源相比传统追溯有什么优点?

区块链溯源:通过使用区块链和物联网技术的结合,记录产品的物流信息,并基于区块链不可篡改的特性把商品的物流信息、质量信息、质检信息等相关商品信息全部记录在上。从而实现了产品全过程的质检、物流、管理等,解决了信息缺乏透明…

01_网络概述

知识点1【分组交换】 知识点2【交换方式】存储-转发 知识点3【网络分层结构】(重要) 知识点4【协议的介绍】 1、IP协议 网际协议(网络层) 2、TCP协议 传输控制协议 (传输层)(重要&#xff…

工程建设行业智能供应链系统:优化产业链运作效率,实现全链路数字化建设

工程建设行业是对建筑工程、线路管道和设备安装工程、建筑装饰装修工程等工程项目进行新建、扩建和改建的行业,对促进国民经济发展和改善人民生活提供了重要的物质技术基础。近年来,我国城镇化的迅速推进为工程建设行业带来了广阔的市场发展空间&#xf…

低压MOS管AONS36344、AONS36348 MOSFET N-CH DFN

特点 沟槽功率MOSFET技术30V 低RDS(ON) 门票费低 高电流能力 符合RoHS和无卤标准 应用 DC/DC转换器在计算、服务器和POL中的应用 电信和工业中的隔离DC/DC转换器 产品参数 1、型号:AONS36344 低压MOS管 类型:单 - N型MOS管 VDS (V)漏极电压:…

阿里P8架构师强推java程序员人手一套116页JVM吊打面试官专属秘籍

说在前面的话 只要是java程序员,肯定对于JVM来说并不陌生,甚至是从熟悉到陌生,为什么这样说呢? 因为你看似熟悉的东西,其实对于源码层级了解得少之又少,到头来只有一种陌生的感觉,使用了吗&…

基于matlab的强化学习QLearning路径规划性能仿真

目录 1.算法概述 2.仿真效果预览 3.核心MATLAB代码预览 4.完整MATLAB程序 1.算法概述 假设我们的行为准则已经学习好了, 现在我们处于状态s1, 我在写作业, 我有两个行为 a1, a2, 分别是看电视和写作业, 根据我的经验, 在这种 s1 状态下, a2 写作业 带来的潜在奖励要比 a1 看…

LeetCode | 一探环形链表的奥秘【快慢双指针妙解BAT等大厂经典算法题】

前言 本文总结了力扣141.环形链表|以及142.环形链表||这两道有关环形链表的求解方案,去求证链表是否带环已经如何找出入环口的结点。 有关环形链表,在BAT等大厂面试中均有出现,一般是属于中等难度的题,需掌握 环形链表| &&…

教你vue-router命令视图应该怎么玩

引言 在VUE实战项目开发中,为了减少代码冗余,便于后期维护,我们经常会把相同布局的代码封装为公共组件,例如移动开发中NavBar导航栏、Tabbar标签栏等公共组件,需要使用时导入、注册、调用即可,但是相对NavB…

JSRPC的三种实现方式

RPC 为远程过程调用,本文通过在浏览器端(服务端)开启一个WebSocket服务,接收命令,执行浏览器网页的加密代码,得到密文。 CMD端(客户端)也开启一个WebSocket服务与浏览器端交互&#…

【Spring Boot】Day03

文章目录一、Value和ConfigurationProperties的区别二、PropertySource一、Value和ConfigurationProperties的区别 区别: 数据校验:判断数据是否合法 Value: 不支持数据校验ConfigurationProperties:支持数据校验 开启数据校验功能&#xf…

软考证书可积分落户、评职称、抵扣个税等,快来考一个吧!

很多人想要在工作的城市落户、买房、生活、小孩上学,但由于对于城市落户政策不了解,担心自己条件不够!今天给大家介绍一本软考证书帮你解决落户等问题。 软考,是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试;既…

[附源码]java毕业设计价格公示系统

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

C. Bouncing Ball(从后往前的前缀和)

Problem - 1415C - Codeforces 你正在为某个手机游戏创建一个游戏关卡。这个关卡应该包含一些从左到右排列的单元格,并以从1开始的连续整数编号,在每个单元格中,你可以放一个平台,也可以让它空着。 为了通过一个关卡,…