当前位置: 首页 > news >正文

SpringCloud五大组件

微服务SpringCloud整合技术组件基本流程:

  1. 引入组件启动器依赖坐标
  2. 覆盖默认配置即application.properties配置文件(每个微服务只有一个并且服务启动默认加载)
  3. 引导类(微服务入口即main方法)自定义开启组件注解
    在这里插入图片描述

SpringCloudEureka

在这里插入图片描述

服务注册中心,分为EurekaService服务端和EurekaClient客户端;EurekaService服务端单独微服务部署(引导类@EnableEurekaServer开启EurekaService服务端组件),实现其他微服务的注册、检测已注册微服务的心跳、实现微服务无心跳的下线;EurekaClient客户端位于服务消费方(引导类@EnableDiscoveryClient开启EurekaClient客户端组件),实现微服务发现(获取已注册在EurekaService服务端的微服务列表即服务IP和端口号并且缓存在本地服务,IP和端口号通过RestFul风格接口实现系统内部微服务之间远程调用)、微服务的续约

SpringCloudRibbon

在这里插入图片描述

服务负载均衡,位于服务消费方调用方法上定义@LoadBalanced注解开启负载均衡(由于引入Eureka启动包,Eureka启动包也引入Ribbon负载均衡相关包,因此可以直接使用@LoadBalanced注解);通过负载均衡算法(轮询、随机等)实现负载均衡调用

SpringCloudHystrix

在这里插入图片描述

熔断三种状态:

  1. 开启状态:远程调用服务提供方超时或服务提供方线程池已满;服务消费方所有远程调用请求不允许即不发送远程调用;该状态有默认时间
  2. 关闭状态:全部远程请求允许调用
  3. 半开启状态:开启状态默认休眠期结束进入半开启状态,允许部分远程请求

微服务降级和熔断,位于服务消费方(引导类@EnableCircuitBreaker和方法@HystrixCommand(fallbackMethod=“局部降级方法名”)或声明该类上@DefaultProperties(defaultFallback=“全局降级方法名”)开启Hystrix组件);通过Hystrix实现服务容错,避免多个远程调用超时服务器资源被占用即内存被占用而产生内存溢出最后出现系统雪崩
备注
@HystrixCommand注解fallbackMethod属性对应局部降级方法的形参和被定义的方法形参列表保持一致;
@DefaultProperties注解defaultFallback属性对应该类全局降级方法,因此没有形参
@HystrixCommand和@DefaultProperties还是会发起远程调用请求实现服务降级
@SpringCloudApplication: 包含@SpringBootApplication和@EnableDiscoveryClient和@EnableCircuitBreaker三个组合注解
多次服务降级触发服务熔断

SpringCloudFeign

在这里插入图片描述

服务间远程调用,位于服务消费方(引导类@EnableFeignClients和自定义接口@FeignClient(value=“服务提供方服务id”, fallback=实现类.class)开启远程调用组件);Feign接口定义抽象方法保持服务提供方方法一致包括方法上定义注解和形参,Feign远程调用是通过接口属性值服务id获取IP和端口并且拼接抽象方法上映射注解@RequestMapping属性值URI发起http请求
备注:
Feign集成了Ribbon和Hystrix组件因此也远程调用也支持负载均衡和服务容错;服务容错需要声明定义容错方法,因此Feign默认关闭Hystrix服务容错
开启Feign组件服务容错方法: Feign接口类@FeignClient(value=“服务提供方服务id”, fallback=实现类.class)定义fallback=实现类.class 属性,实现Feign接口并且实现类通过@Component注解注入SpringIOC容器,开启Feign组件服务容错的功能

SpringCloudZuul

在这里插入图片描述

服务网关,外部所有请求都是通过服务网关进行过滤校验、路由转发调用内部微服务接口(引导类@EnableZuulProxy和自定义类继承ZuulFilter类开启服务网关组件);Zuul组件集成了hystrix和Ribbon组件,也支持服务容错和负载均衡

相关文章:

SpringCloud五大组件

微服务SpringCloud整合技术组件基本流程: 引入组件启动器依赖坐标覆盖默认配置即application.properties配置文件(每个微服务只有一个并且服务启动默认加载)引导类(微服务入口即main方法)自定义开启组件注解 SpringCloudEureka 服务注册中心,分为Eure…...

Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】

Echart? ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。 ECharts 遵循 Apache-2.0 开源协议,免费商用。 ECharts 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome&#xf…...

聊聊腾讯T13技术专家被开除

这两天腾讯的技术大佬stonehuang被曝离开腾讯,据他老婆在小红书上发的帖子称是遭遇了裁员,说实话刚看到这个消息我挺震惊的,stonehuang在中国大前端领域是排得上号的专家,同时他2005年就加入了腾讯,在qq空间的发展历程…...

c++ 常见宏、模板用法【1】

目录1、宏定义实现简单的断言2、可变参数模板3、变量模板4、宏定义实现范围内的for循环5、模板实现函数对象6、宏定义实现作用域限定7、类型萃取模板1、宏定义实现简单的断言 #define ASSERT(expr) \if(!(expr)) { \std::cout << "assertion failed: " <&l…...

【25】Verilog进阶 - 序列检测

VL25 输入序列连续的序列检测 本题并不难【中等】难度给高了 【做题关键】 (1)需要使用移位寄存器的思路。其实reg型是寄存器,也可以当做是移位寄存器,重要的是对其的处理,使用的是移位寄存器的思路 (2)注意新移入数据存放在低位 1 题目 + 代码 + TestBench 很简单,没…...

如何绕开运营商的 QoS 限制

运营商针对 UDP 进行限制&#xff0c;这是 QUIC 以及类似 UDP-Based 协议的推广阻力之一&#xff0c;上了线很多问题&#xff0c;丢包&#xff0c;慢等的问题严重增加运维&#xff0c;运营成本。 按照运营商五元组 QoS 这种简单粗暴不惹事的原则&#xff0c;只要换一个端口就可…...

C#基础教程22 异常处理

文章目录 C# 异常处理语法C# 中的异常类异常类 描述异常处理创建用户自定义异常C# 异常处理 异常是在程序执行期间出现的问题。C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。 异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。C# 异常处理…...

java八股文--java基础

java基础1.什么是面向对象&#xff0c;谈谈对面向对象的理解2.JDK JRE JVM的区别与联系3.和equals4.hashCode与equals5.String StringBuffer StringBuilder的区别6.重载和重写的区别7.接口和抽象类8.List和Set的区别9.ArrayList和LinkedList10.HashMap和HashTable的区别&#x…...

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A模块第四套解析(详细)

2022年全国职业院校技能大赛(中职组) 网络安全竞赛试题 (4) (总分100分) 赛题说明 一、竞赛项目简介 “网络安全”竞赛共分A.基础设施设置与安全加固;B.网络安全事件响应、数字取证调查和应用安全;C.CTF夺旗-攻击;D.CTF夺旗-防御等四个模块。根据比赛实际情况,竞…...

【Spark】spark使用jdbc连接带有kerberos认证的hive jdbc

背景 这个需求就是spark不通过spark-hive的方式访问hive数据&#xff0c;而是通过spark读取hive jdbc的方式访问hive数据&#xff0c;因为这个hive有kerberos认证&#xff0c;在网上也不是很容易搜索到这样的操作案例。不多bb&#xff0c;直接上教程。 准备工作 准备一个hiv…...

【Maven】项目中pom.xml坐标定义以及pom基本配置

目录 一、pom.xml坐标定义 二、pom 基本配置 一、pom.xml坐标定义 在 pom.xml 中定义坐标&#xff0c;内容包括&#xff1a;groupId、artifactId、version&#xff0c;详细内容如下&#xff1a; <!--项目名称&#xff0c;定义为组织名项目名&#xff0c;类似包名-->&l…...

Linux GCC 编译详解

文章目录一、GCC 编译器简介二、GCC 工作流编程语言的发展GCC 工作流程gcc 和 g 的区别三、使用 GCC 编译GCC 编译格式GCC 编译流程多个源文件编译一、GCC 编译器简介 首先&#xff0c;什么是编译器呢&#xff1f; 我们可以使用编辑器&#xff08;如 linux 下的 vi、windows 下…...

谁说程序员不懂了浪费,女神节安排

Python的PyQt框架的使用一、前言二、女神节文案三、浪漫的代码四、官宣文案一、前言 个人主页: ζ小菜鸡大家好&#xff0c;我是ζ小菜鸡&#xff0c;特在这个特殊的日子献上此文&#xff0c;希望小伙伴们能讨自己的女神欢心。 二、女神节文案 1.生活一半是柴米油盐&#xff0c…...

上市公司管理层短视指标(2007-2020)

1、数据说明&#xff1a;将研发⽀出的减少量&#xff08;∆R&D&#xff09;作为管理层短视⾏为的度量指标&#xff0c;即∆R&D为公司t年的研发⽀出减去t-1年的研发⽀出并除以t-1年末的总资产再乘以100。2、数据来源&#xff1a;自主整理3、时间跨度&#xff1a;2007-20…...

IDDPM 和 DDIM 对比

IDDPM 和 DDPM 对比IDDPMDDIMIDDPM IDDPM&#xff1a;Improved Denoising diffusion probabilistic models learning Σθ\Sigma_{\theta}Σθ​&#xff0c; 即Σθ(xt,t)exp⁡(vlog⁡βt(1−v)log⁡β~t)\Sigma_{\theta}\left(x_{t}, t\right)\exp \left(v \log \beta_{t}(1…...

链表OJ题(上)

✅每日一练&#xff1a;876. 链表的中间结点 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 定义快慢指针&#xff0c;让快指针走2步&#xff0c;慢指针走1步&#xff0c;当fast或者fast.next为空时&#xff0c;走完链表&#xff0c;此时slow就是中间位置 pub…...

【题解】百度2021校招Web前端工程师笔试卷(第一批):单选题、多选题

题目来源&#xff1a;牛客网公司真题_免费模拟题库_企业面试|笔试真题 (nowcoder.com) 若有错误请指正&#xff01; 单选题 1 某主机的 IP 地址为 212.212.77.55&#xff0c;子网掩码为 255.255.252.0。若该主机向其所在子网发送广播分组&#xff0c;则目的地址可以是&…...

论文解读:SuperPoint: Self-Supervised Interest Point Detection and Description

发表时间: 2018年 项目地址&#xff1a;https://arxiv.org/abs/1712.07629 论文地址&#xff1a;https://github.com/magicleap/SuperPointPretrainedNetwork 本文提出了一种用于训练计算机视觉中大量多视点几何问题的兴趣点检测器和描述符的自监督框架。与patch-based的神经网…...

游戏玩的多,陪玩你了解的多吗?用Python来采集陪玩数据,看看行情和美照

前言 (&#xff61;&#xff65;∀&#xff65;)&#xff89;&#xff9e;嗨 大家好 现在应该每个人都玩过游戏吧&#xff0c;有些的上瘾&#xff0c;天天玩停不下来&#xff0c;有些的倒是没啥感觉 有游戏就肯定有陪玩啊&#xff0c;毕竟当朋友忙的时候&#xff0c;自己一个…...

React框架创建项目详细流程-项目的基本配置-项目的代码规范

文章目录React创建项目流程与规范项目规范项目配置目录结构样式重置Router配置Redux状态管理axios配置React创建项目流程与规范 项目规范 项目规范: 在项目中都会有一些开发规范和代码风格, 下面介绍一下我采用的规范与风格 文件夹、文件名称统一小写、多个单词以连接符(-)连…...

Ctool:一站式解决开发者的日常编码烦恼

Ctool&#xff1a;一站式解决开发者的日常编码烦恼 【免费下载链接】Ctool 程序开发常用工具 chrome / edge / firefox / utools / windows / linux / mac 项目地址: https://gitcode.com/gh_mirrors/ct/Ctool 在日常开发工作中&#xff0c;我们常常需要处理各种编码转换…...

光伏并网系统谐波抑制控制策略【附程序】

✨ 长期致力于锁相环、谐波电流检测、二阶广义积分器、LMS滤波器研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;基于双二阶广义积分器-锁频环的自适应…...

AI提示词工程实战:结构化系统与用户提示词提升AI工具效能

1. 项目概述&#xff1a;一个为AI工具提供高质量提示词的“弹药库”如果你和我一样&#xff0c;每天都在和各种AI工具打交道——从写代码的Cursor、ChatGPT&#xff0c;到画图的Midjourney、DALL-E&#xff0c;再到处理数据的Pandas AI——那你肯定遇到过这样的时刻&#xff1a…...

阴阳师御魂自动刷脚本:5分钟快速上手的智能挂机指南

阴阳师御魂自动刷脚本&#xff1a;5分钟快速上手的智能挂机指南 【免费下载链接】yysScript 阴阳师脚本 支持御魂副本 双开 项目地址: https://gitcode.com/gh_mirrors/yy/yysScript 还在为重复刷御魂副本而感到疲惫吗&#xff1f;yysScript智能挂机脚本是专为《阴阳师》…...

windows系统安装wsl安装opencode教程

使用 AI 助手&#xff08;OpenCode&#xff09;在 WSL2 中高效安全工作教程 背景 在 AI 极大发展的现在&#xff0c;AI 可以帮助我们完成很多工作。那么怎么让 AI 帮我们高效、安全地工作呢&#xff1f;以下是教程。 同时&#xff0c;大模型在 Windows 里面直接执行脚本时错…...

ExplorerPatcher:彻底改造你的Windows界面体验,打造个性化高效工作环境

ExplorerPatcher&#xff1a;彻底改造你的Windows界面体验&#xff0c;打造个性化高效工作环境 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher …...

用Qt快速搭建一个局域网文件传输工具:QTcpServer/QTcpSocket完整项目实战

用Qt快速搭建一个局域网文件传输工具&#xff1a;QTcpServer/QTcpSocket完整项目实战 在数字化办公场景中&#xff0c;局域网文件传输是高频刚需。想象这样的场景&#xff1a;会议室里需要快速共享设计稿&#xff0c;实验室多台设备要同步采集数据&#xff0c;或者家庭网络中手…...

CDMA功率测量技术与Agilent 8960系统优化

1. CDMA功率测量技术背景与挑战在cdma2000移动通信系统中&#xff0c;精确的功率控制是实现高质量通信的核心技术之一。与GSM等采用固定功率等级的系统不同&#xff0c;CDMA要求移动台(MS)能够在80dB动态范围内精确调整发射功率。这种需求源于CDMA系统的自干扰特性——所有用户…...

Linux桌面便签终极方案:Sticky让你的灵感永不丢失

Linux桌面便签终极方案&#xff1a;Sticky让你的灵感永不丢失 【免费下载链接】sticky A sticky notes app for the linux desktop 项目地址: https://gitcode.com/gh_mirrors/stic/sticky 在Linux桌面上高效管理零散信息一直是许多用户的痛点。Sticky作为一款专为Linux…...

STM32CubeMX实战指南:基本定时器中断配置与精准延时应用

1. 认识STM32基本定时器 第一次接触STM32定时器时&#xff0c;我完全被各种类型的定时器搞晕了。直到后来才发现&#xff0c;基本定时器其实是最好上手的。STM32F1系列通常包含TIM6和TIM7两个基本定时器&#xff0c;它们就像电子表里的秒表功能 - 只能计时&#xff0c;没有花哨…...