springcloud3 注册中心以及cloud启动原理总结(含面试)

一 Springcloud微服务面试题

1.1 为何使用注册中心

1)问题描述

在多个单体微服务之间,可以直接通过http请求进行通信,但是存在以下问题:

1.调用服务提供者时需要写ip和端口,如果出现ip和端口进行了修改,没有及时告知调用者,那么将无法调用服务提供者。

2.被调用的服务,因为机器迁移,多个被调用的服务修改了ip和端口,被调用者需要手动进行修改维护,成本比较高,维护困难。

2)注册中心的作用

注册中心便解决了这些问题,当服务注册到注册中心,我们只需要知道服务名,便可以从注册中心拉取服务提供者最新的信息。当服务变更的时候,注册中心也会通知到各个客户端。

服务注册:就是服务启动的时候吧自己的一些信息(包括ip、端口)等发送给注册中心,由注册中心统一管理。当每个注册中心客户端启动时,会从注册中心获取所有服务的信息存到客户端本地

服务发现:当注册中心发现有新的服务注册进来的时候,会把新服务的信息群发给所有的服务客户端

健康检查和服务摘除:主动的检查服务健康情况,对于宕机的服务将其摘除服务列表。

3)总结

所有各个微服务需要首先注册到注册中心里面去, 调用者然后从注册中心拿到服务信息,再对具体的微服务发起调用。

注册中心是所有服务的一个统一的管理者。微服务的之间的访问是通过一个注册中心来实现的。

谈一谈我所理解的微服务中的注册中心-WinFrom控件库|.net开源控件库|HZHControls官网

运维高阶必知——微服务注册中心那些事 - 知乎

https://blog.csdn.net/qq_41316955/article/details/127031155

1.2 springcloud的网关为何要注册到注册中心中

Gateway它是间接的起了一个内部微服务的作用,app请求过来是一个具体的微服务的地址连接,网关拿到这个东西以后仍然是要去注册中心去寻址去找到到具体的调用地址,然后再去直接调用下面的微服务。

【微服务】一文读懂为什么需要微服务网关+注册中心_网关和注册中心_Old丶x的博客-CSDN博客

1.3 springcloud如何优雅的进行关闭

1.自定义程序实现:设置预留时间,比如关闭前40s,清除掉nacos需要关闭服务的信息,让请求方刷新到最新的服务列表(最新列表中不包含删除的服务信息),防止请求方再次请求到要删除的服务。

2.使用springboot 版本大于2.3 自带的优雅停机方案。在配置文件中配置server.shutdown=graceful,在web容器关闭时,web 服务器在设定的时间缓冲其内将不再接收新请求。使用 timeout-per-shutdown-phase配置最长等待时间,超过该时间后关闭。

3.使用插件ShutdownHook进行优雅关闭

Spring Cloud 框架优雅关机和重启 - 简书

1.4 @autoconfiguration注解是怎么自动配置的

1)springbootapplication的作用:Springboot最重要的功能是:自动配置。

Spring Boot 的开启注解是:@SpringBootapplication,其实它就是由下面三个注解组成的:@Configuration,@componentscan,@EnableAutoConfiguration这3个注解。

2)@autoconfiguration注解作用

其中最核心的就是这个@EnableAutoConfiguration注解,@EnableAutoConfiguration注解是Spring Boot自动配置机制的入口点,它会启用Spring Boot的自动配置机制,并根据当前应用程序所依赖的jar包和类路径上的资源,自动装配各种组件和配置。

该注解通过@Import注解导入了EnableAutoConfigurationImportSelector类,这个类是自动配置机制的核心实现,负责加载META-INF/spring.factories文件中的自动配置类,并将它们注入Spring容器中。

springboot 自动配置原理

截图如下:

3)总结

@EnableAutoConfiguration 代表开启 SpringBoot的自动装配。

总的来说,Spring Boot自动配置机制的核心就是基于条件注解和类路径扫描机制在应用程序启动时自动装配各种组件和配置。通过Starter包的定义,Spring Boot可以实现对各种功能模块的自动配置,大大简化了应用程序的开发和部署。

https://blog.csdn.net/yyxiaozhang/article/details/119903577

https://www.zhihu.com/tardis/bd/art/621911639?source_id=1001

https://www.bilibili.com/read/cv11916999/

1.5 @enablexxx注解的理解

@EnableXX内部工作原理就是 @Import导入一个或多个配置@EnableXX的工作原理实际上就是通过@Import导入指定的配置文件或bean装配到spring容器

https://blog.csdn.net/ye17186/article/details/88052910

SpringBoot入门(6)- @EnableXXX 注解的工作原理_上官天夜的博客-CSDN博客

【SpringBoot】SpringBoot自定义@EnableXX_程序员小菜鸡QAQ的博客-CSDN博客

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

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

相关文章

微信小程序开发---基本组件的使用

目录 一、scroll-view (1)作用 (2)用法 二、swiper和swiper-item (1)作用 (2)用法 三、text (1)作用 (2)使用 四、rich-tex…

【面试经典150题】H 指数

题目链接 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她&#x…

C# 中什么是重写(子类改写父类方法)

方法重写是指在继承关系中,子类重新实现父类或基类的某个方法。这种方法允许子类根据需要修改或扩展父类或基类的方法功能。在面向对象编程中,方法重写是一种多态的表现形式,它使得子类可以根据不同的需求和场景提供不同的方法实现。 方法重…

智慧公厕是将数据、技术、业务深度融合的公共厕所敏捷化“操作系统”

文明社会的进步离不开公共设施的不断创新和提升。而在这些公共设施中,公共厕所一直是一个备受关注和改善的领域。近年来,随着智慧城市建设的推进,智慧公厕成为了城市管理的重要一环。智慧公厕不仅仅是为公众提供方便和舒适的便利设施&#xf…

如何使用Puppeteer进行金融数据抓取和预测

导语 Puppeteer是一个基于Node.js的库,可以用来控制Chrome或Chromium浏览器,实现网页操作、截图、PDF生成等功能。本文将介绍如何使用Puppeteer进行金融数据抓取和预测,以及如何使用亿牛云爬虫代理提高爬虫效果。 概述 金融数据抓取是指从…

Java HashMap源码学习

Java HashMap源码学习 基本使用 包含创建&#xff0c;添加&#xff0c;删除&#xff0c;迭代&#xff0c;打印 val map java.util.HashMap<Int, Int>() map.put(1, 2) map.put(2, 2) map.put(3, 2) map.remove(1) map.forEach {println("it.key${it.key}, it.va…

Cocos独立游戏开发框架中的日志模块:Bug无所遁形

引言 本系列是《8年主程手把手打造Cocos独立游戏开发框架》&#xff0c;欢迎大家关注分享收藏订阅。 在Cocos独立游戏开发框架中&#xff0c;一个强大的日志模块是不可或缺的组成部分。日志不仅仅是记录应用程序的运行状态&#xff0c;还可以用于故障排除、性能监测和安全审计…

26.篮球练习

题目 Description 小徐酷爱打篮球&#xff0c;在小学期的前两周半都在练习篮球。 今天&#xff0c;小徐想要练习如何突破。练习场地可由如下所示的网格图表示&#xff0c;图中的位置可用坐标表示。 其中A点(0,0)为小徐的起始位置&#xff0c;B点(n,m)为小徐想要到达的位置。…

高教社杯数模竞赛特辑论文篇-2018年D题:汽车总装线配置的优化模型研究

目录 摘 要 1. 问题的重述 1.1 装配要求 1.2 喷涂要求 1.3 需要解决的问题 2. 问

python中如何使用正则表达匹配\本身?(文末赠书)

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 将军向宠&#xff0c;性行淑均。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python钻石群【空】问了一个Python正则表达式的问题&#xff0c;一起…

PageHelper分页原理解析

大家好&#xff0c;我是Leo! 今天给大家带来的是关于PageHelper原理的解析&#xff0c;最近遇到一个SQL优化的问题&#xff0c;顺便研究了一下PageHelper的原理&#xff0c;毕竟也是比较常用&#xff0c;源码也比较好看的懂&#xff0c;如果感兴趣的小伙伴可以跟着过程去DEBUG源…

tcp字节传输(java)-自定义包头和数据识别

1、背景 tcp传输的时候会自动拆包&#xff0c;因此服务端接收的数据段可能跟客户端发送过来的数据段长度不一致&#xff0c;比如客户端一次发送10000个字节。但是服务端接收了两次才接收完整&#xff08;例如第一次接收6000字节&#xff0c;第二次接收4000字节&#xff09;。但…

vue3 watch watchEffect

watch & watchEffect 函数都是监听器, 用于监视数据的变化; watch 有惰性&#xff0c;watchEffect 无惰性&#xff1b;watch 需要指定具体的监视属性&#xff0c;watchEffect 不需要指定具体的监视属性和配置参数&#xff0c;会自动感知代码依赖&#xff1b;watch 能获取到…

【Web_接口测试_Python3_日期时间库】Arrow获取过去/当前未来时间日期、格式化时间日期、转换时间戳、获取不同时区时间日期等

## 简介 Arrow是一个 Python 库&#xff0c;它提供了一种明智且人性化的方法来创建、操作、格式化和转换日期、时间和时间戳。它实现并更新 datetime 类型&#xff0c;填补了功能上的空白&#xff0c;并提供了支持许多常见创建方案的智能模块 API。简而言之&#xff0c;它可以帮…

AI云服务平台大全:GPU租用 | App托管 | MLOps平台

我们搜集整理了国内外主要的深度学习云服务商&#xff0c;包括云GPU供应商、WebApp托管商和MLOps平台商。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 1、云GPU供应商 只有一台笔记本电脑&#x1f4bb;不足以运行你的AI模型&#xff0c;忘记它吧&#xff0c;使用云 …

解密Spring Cloud Alibaba核心技术,实战案例书现世

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作者&#x1f3c6;&#xff0c;阿里云专家博主&#x1f3…

晨启,MSP430开发板,51开发板,原理图,PCB图

下载&#xff1a;https://github.com/xddun/blog_code_search

【算法训练-链表 五】【求和】:链表相加(逆序)、链表相加II(顺序)

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【链表相加】&#xff0c;使用【链表】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

【unity3D】如何修改相机的默认视角

&#x1f497; 未来的游戏开发程序媛&#xff0c;现在的努力学习菜鸡 &#x1f4a6;本专栏是我关于游戏开发的学习笔记 &#x1f236;本篇是unity的如何修改相机的默认视角 如何修改相机的默认视角 Game窗口运行的话视角是这样的&#xff1a; 此时Scene窗口的视角是这样的&…

java基础面试题第二天

1.java基础面试题第三天 1.数组到底是不是对象 是对象。 先说说对象的概念。对象是根据某个类创建出来的一个实例&#xff0c;表示某类事物中一个具体的个体。数组类的父类就是Object类&#xff0c;那么可以推断出数组就是对象。 2.java的基本数据类型有哪些&#xff1f; b…