Spring Cloud组件

news2024/11/25 22:25:52

1.服务治理 Spring Cloud Eureka

概念

Eureka提供了服务端组件,我们也称为注册中心。每个服务都向Eureka的服务注册中心,登记自己提供服务的元数据,包括服务的ip地址、端口号、版本号、通信协议等。

原理

服务注册中心,还会以心跳的方式去监听清单中的服务是否可用(默认30秒),若不可用(服务续约时间默认90秒),需从清单中剔除,达到排除故障服务的效果。
Eureka注册中心提供了高可用方案,可以支持集群部署注册中心,保证了AP(可用性和分区容错性),然后多个注册中心实例之间又相互注册,这样每个实例中都有一样的服务清单了。

2.客户端负载均衡 Spring Cloud Ribbon

概念

服务的调用方,在通过Eureka Client缓存到本地的注册表之后,通过服务名称,找到具体的服务对应的实例地址,但是被调用方的服务地址是有多个的,那么该用那个地址去进行调用呢?ribbon提供访问方案。

策略

随机:从服务实例清单中随机选择一个服务实例
权重:根据权重来挑选实例
轮训:根据轮询方式进行,且具备重试机制进行选择实例

3.声明式服务调用 Spring Cloud Feign

概念

Spring Cloud Feign具备可插拔的注解支持,并扩展了Spring MVC的注解支持,调用方通过Feign进程远程服务调用的时候,非常简单,就向是在调用本地服务一样.

原理

Feign底层主要是靠动态代理来实现这整个服务的调用过程的,如果调用方,在调用这个定义了@FeignClient注解的接口时,本质上是会调用Feign生成的代理类。 Feign生成的动态代理类,会根据具体接口方法中的**@RequestMapping**等注解,来动态构造出需要请求的服务地址.

4.服务容错保护 Spring Cloud Hystrix

概念

微服务架构中,我们将系统拆分成多个服务单元,各个服务之间通过服务注册与订阅的方式互相依赖,一旦其中一个有异常,很容易会造成服务雪崩。针对这种情况,Hystrix会提供服务的熔断,隔离,降级

原理

Hystrix其实是会为每一个服务开辟一个线程池,然后每个线程池中的线程用于对服务的调用请求。这样就算是积分服务挂了,那也只是调用积分服务的线程池出现问题了,而其他服务的线程池还正常工作。这就是服务的隔离

这样订单服务在的调用积分服务的时候,如果发现有问题了,积分服务可以通过Hystrix返回一个默认值(默认是5秒内20次调用失败就熔断)。这样订单服务就不用在这里卡住了,可以继续往下调用其他服务进行业务操作了。这就是服务的熔断

虽然说是积分服务挂了,并且也返回了默认值了,但是后续如果积分服务恢复了,想恢复数据怎么办呢?这个时候积分服务可以将接收到的请求记录下来,或者是打到日志中,能为后面恢复数据提供依据就行。这就是服务的降级

5.API网关服务Spring Cloud Zuul

概念

权限校验机制,请求过滤,请求路由,限流等等

概述

在这里插入图片描述

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

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

相关文章

【DOCKER】容器概念基础

文章目录1.容器1.概念2.特点3.与虚拟机的对比2.docker1.概念2.命名空间3.核心概念3.命令1.镜像命令2.仓库命令1.容器 1.概念 1.不同的运行环境,底层架构是不同的,这就会导致测试环境运行好好的应用,到了生产环境就会出现bug(就像…

DevOps在项目交付场景下的应用

DevOps介绍 DevOps一词是由development和operation两个单词组合而来,代表着研发和交付运营的一体化。DevOps在2009年就被提出,但在学术界和工业界还没有一个广泛认可的定义,一些有代表性的总结,比如John Willis从文化、自动化、度…

策略编制解决方案

策略编制 NetIQ 使您能够将 AD 策略扩展到整个 IT 生态系统,并集中管理和监控策略与配置更改。 一、优点 提高 IT 管理员效率 集中管理策略控制。 借助可见性降低风险 借助实时监控减少漏洞。 审计和合规性报告 采取措施以满足安全条例和策略的合规要求。 二、…

应用部署初探:微服务的3大部署模式

在之前的文章中,我们已经充分了解了应用部署的4种常见模式(金丝雀部署、蓝绿部署、滚动部署及影子部署)。随着云原生技术逐步成熟,企业追求更为灵活和可扩展的系统,微服务架构大行其道。 微服务固然有诸多优点&…

计算组合数Cnk即从n个不同数中选出k个不同数共有多少种方法math.comb(n,k)

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 计算组合数Cnk 即从n个不同数中选出k个不同数共有多少种方法 math.comb(n,k) 以下python代码输出结果是? import math print("【执行】print(math.comb(3,1))") print(math.comb(…

一文了解kafka消息队列,实现kafka的生产者(Producer)和消费者(Consumer)的代码,消息的持久化和消息的同步发送和异步发送

文章目录1. kafka的介绍1.2 Kafka适合的应用场景1.2 Kafka的四个核心API2. 代码实现kafka的生产者和消费者2.1 引入加入jar包2.2 生产者代码2.3 消费者代码2.4 介绍kafka生产者和消费者模式3. 消息持久化4. 消息的同步和异步发送5. 参考文档1. kafka的介绍 最近在学习kafka相关…

Ubuntu20.04+cuda11.2+cudnn8.1+Anaconda3安装tensorflow-GPU环境,亲测可用

(1)安装nvidia显卡驱动注意Ubuntu20.04和Ubuntu16.04版本的安装方法不同,安装驱动前一定要更新软件列表和安装必要软件、依赖(必须)sudo apt-get update #更新软件列表sudo apt-get install gsudo apt-get install gccsudo apt-get install make查看GP…

4.5.1 泛型

文章目录1.概述2.泛型的具体表现形式3.泛型的作用4.泛型示例5.练习:泛型测试一6.练习:泛型测试二1.概述 泛型不是指一种具体的类型,而是说,这里有个类型需要设置,那么具体设置成什么类型,得看具体的使用; …

RabbitMQ-持久化

一、介绍如何保证RabbitMQ服务停掉以后生产者发送过来的消息不丢失。默认情况下RabbitMQ退出或由于某种原因崩溃时,他将忽视队列和消息,除非告知它不要这样做。确保消息不丢失需要做两件事情:将队列和消息都标记为持久化二、队列持久化再声明…

(1分钟速通面试) SLAM中的最小二乘问题

最小二乘拟合问题 求解超定方程首先写这篇博客之前说一个背景,这个最小二乘拟合问题是我在去年面试实习的时候被问到的,然后当时是非常的尴尬,没有回答上来里面的问题。Hhh 所以这篇博客来进行一个补充学习一下下。感觉这个最小二乘问题还是比…

根据报告20%的白领在一年内做过副业,你有做副业吗?

现在大部分人收入单一,收入都是来源于本职工作,当没有了工作就没有了收入的来源,而生活压力又很大,各种开支,各种消费。所以很多人想要增加收入来源,增加被动收入,同时通过副业提升自己的价值和…

LeetCode·每日一题·1223.掷骰子模拟·记忆化搜索

作者:小迅链接:https://leetcode.cn/problems/dice-roll-simulation/solutions/2103471/ji-yi-hua-sou-suo-zhu-shi-chao-ji-xiang-xlfcs/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权&#xff0…

libxlsxwriter中文报错问题

libxlsxwriter库在windows系统下VS中存在中文输入报错问题。这在小白关于libxlsxwriter的第一篇博客libxlsxwriter初体验里有所阐述。当时小白给出的解决方案是将文件编码修改成不带签名的utf-8。后来在使用中,小白发现这样并没有完全解决问题。有的中文可以正常写入…

VHDL语言基础-时序逻辑电路-触发器

目录 触发器: D触发器: 触发器的VHDL描述: 触发器的仿真波形如下:​编辑 时钟边沿检测的三种方法: 方法一: 方法二: 方法三: 带有Q非的D触发器: 带有Q非的D触发器的描述&am…

微信小程序 Springboot高校课堂教学管理系统-java

小程序端 学生在小程序端进行注册并且进行登录。 填写自己的个人信息进行注册 登录成功后可以看到有首页、课程资源、测试、互动论坛、我的功能模块。 课程资源学生可以点击想要查看的资源进行观看。 课程分类学生可以按照自己想要的分类进行搜索并且进行观看。 互动论坛可以查…

四种方式的MySQL安装过程 数据库(2)

目录 1. 仓库安装: 1.1 卸载数据库软件: 2. 本地安装: 2.1 卸载数据库软件: 3. 容器安装: 4. 源码安装: 4.1 使用systemctl命令启动进程 1. 仓库安装: (1)查看版本…

超级详细GitBook和GitLab集成步骤【linux环境】

介绍 本文主要是在 gitlab 上集成 gitbook 实现提交时 gitbook 自动刷新部署 ,以及在 linux 环境上搭建 gitlab gitbook,集成 GitLab CI 实现一个企业级或个人的 Wiki 系统 环境准备 1.一台 linux 服务器 2.安装 node 以及 npm 环境 (这里注意 node 环境不要过高 不…

CS反制之批量伪装上线

分析原理: 我们利用Wireshark抓包工具分析一下Cobalt Strike的上线过程是怎么样的 点击木马,主机上线并抓包 查看数据包 可以看到cookie是一串非对称RSA加密类型,需要一个私钥Private Key才能对其进行解密 我们对Cookie解密看看&#xff…

Django框架之系列二

为什么要搭建虚拟环境? 在开发过程中, 当需要使用python的某些工具包/框架时需要联网安装 比如联网安装Django框架django的1.11.11版本 sudo pip install django1.11.11提示:使用如上命令, 会将Django安装到/usr/local/lib/python2.7/dist-packages路径下问题&…

常见的10种网络安全攻击类型

1. DoS 和 DDoS 攻击DoS 是 Denial of Service 的简称,即拒绝服务。单一的 DoS 攻击一般是采用一对一方式的,通过制造并发送大流量无用数据,造成通往被攻击主机的网络拥塞,耗尽其服务资源,致使被攻击主机无法正常和外界…