SpringCloud 题库
这篇文章是关于 SpringCloud 面试题的汇总,包括微服务的概念、SpringCloud 的组成及相关技术,如服务注册与发现、负载均衡、容错等,还涉及 Nacos 配置中心、服务注册表结构等原理,以及微服务架构中的日志采集、服务网关、相关概念和预防服务雪崩的措施等。
1、什么是微服务?
微服务是一种软件架构风格,是将复杂的应用拆分成一个个功能单一的服务。微服务使得开发、运维和部署更加灵活和高效。针对不同的业务类型的服务,可以用不同的技术和语言选型。各个微服务之间使用RPC进行网络通信,相比单体服务会带来网络开销。
2、SpringCloud有哪些组成?
1)服务注册与发现:一个系统可能有上百个微服务,这些微服务的配置以及状态都需要管理,SpringCloud有配置中心和注册中心
2)负载均衡:Ribbon是基于HTTP和TCP协议的负载均衡器。OpenFeign支持RPC调用
3)服务容错:Sentinel支持限流、熔断和降级
4)网关:SpringCloud Gateway可进行服务转发、过滤和负载均衡
5)分布式事务:要保证多个微服务之间数据一致性,需要分布式事务
3、Nacos作为配置中心的原理?
1)配置信息注册:服务启动了,Nacos客户端向服务端注册配置信息,服务将其保存下来并生成对应的版本号
2)配置信息存储:Nacos服务端将配置信息一般存储在数据库中,可以通过Nacos配置文件指定
3)配置信息获取:服务运行期间,Nacos客户端通过调用API拿到配置信息
4)配置信息变化监听:配置信息变化时,Nacos服务端会通知已经注册的客户端,并触发相应的回调方法
4、微服务架构中如何进行日志采集? 可以通过使用ELK方案进行采集
1)LogStash:是用于采集、过滤和转发日志数据的工具,可以采集微服务的日志信息
2)ElasticSearch:是用于存储和索引大量日志信息的工具,也提供了快速查询的功能
3)Kibana:日志数据可视化工具,从ElasticSearch中查询出日志数据后在界面展示
5、Nacos的服务注册表结构?
Nacos采用数据的分级存储模型,最外层的是namespace,用来隔离环境;然后是group,用来实现服务分组;接下来是服务(service),一个服务可以有多个实例,并且可能服务节点不在一个区域,所以服务下面还有集群(cluster),集群下还有多个实例(instance)。
6、Nacos的namespace的作用?
namespace用来隔离不同的环境(开发、测试和生产环境)和不同的服务的配置信息和服务信息,避免发生冲突。在Nacos中每个namespace都有自己的配置和服务注册表,意味着多个服务注册到Nacos中,这些服务是可以放到不同的namespace中的,每个namespace有唯一ID用于标识。
7、Nacos是强一致性的还是最终一致性的?
Nacos既可以是强一致性,也可以是最终一致性,是通过配置参数nacos.consistency.mode进行配置nacos.consistency.mode=AP nacos.consistency.mode=CP AP表示最终一致性,CP表示强一致性。
8、在SpringCloud中,如何做到负载均衡?
一般使用Ribbon进行负载均衡。Ribbon是客户端侧的负载均衡,在调用接口前,先到注册中心拿到可用的服务列表,并且缓存到本地,然后通过负载均衡算法选择出服务端节点。负载均衡还有一种常见的方式,就是服务端侧负载均衡,例如Nginx,就是请求快到服务端时,先经过Nginx,由Nginx选择合适的节点。
9、Http和RPC的区别?
HTTP是应用层的网络通信协议,RPC是远程调用,运用于微服务间通信。RPC的底层有可能是HTTP协议,也有可能是其他协议。
10、Ribbon和Feign调用服务的区别是什么?
Ribbon是基于HTTP和TCP协议的负载均衡组件,主要实现客户端侧负载均衡,需要在代码中手动设置调用目标服务。Feign是内置了Ribbon,用来实现负载均衡,而且Feign主要是通过注解定义接口,然后调用接口去调用注册中心的服务。
11、为什么Feign第一次调用耗时长?
这个与Feign内置了Ribbon有关。第一次调用,需要启动Ribbon,去注册中心拿到可用的服务列表,建立起连接池,所以比较耗时。往后的调用,服务列表已经存在本地,就不需要访问注册中心了。如果想要节省第一次调用的时间,最好是程序启动时进行一次预热,先自动调用一次。
12、什么是服务雪崩?
一个系统往往由多个微服务组成,一个功能可能需要调用多个微服务,例如A调用B,B调用C,C调用D等等。如果服务C宕机了,导致功能不可用,随着请求越来越多,可能会导致系统全面崩盘,这就是服务雪崩。可以通过以下几个方面预防服务雪崩:
1)服务的高可用部署:搭建集群
2)服务限流、降级和缓存,通过限流和缓存的方式保护服务,减少服务压力,在必要时采用服务降级的方式,即牺牲一些边缘功能来保证核心功能可用。
3)服务熔断,服务负载过大时,直接熔断,避免过多的请求涌入。
13、什么是服务降级?
服务降级是微服务中一种保护核心功能的机制,目的是在系统资源紧张的时候保证核心功能可用。例如可以将一些边缘的功能暂时关闭,或者在服务调用失败时,默认返回一个值来处理失败的情况,或者在申请某个资源失败时,返回一个预先准备的资源。
14、什么是服务熔断?
在微服务架构中,系统的服务相互调用,有的服务出现宕机现象,如果此时不处理,可能会导致整个系统崩溃。为了避免这种现象,要对服务进行熔断处理。也就是说关闭此服务的调用,避免发生系统崩溃。直到服务正常或者到达最大等待时间才恢复正常。
15、什么是服务限流?
服务限流可以看做是服务降级的一种,限流是通过限制系统请求的输入和输出,从而保护系统。限流是因为服务的吞吐量是可以预估的,为了保证系统正常,设置流量阈值。限流的方案有很多,比如限流算法,延迟解决,以及拒绝解决等等。
16、为什么需要服务网关?
在微服务架构中,存在服务相互调用,而服务的调用链路可能相当复杂,服务的部署和变化非常频繁,为了减少修改源代码,就是用了服务网关。服务网关是服务调用链路上的中间件,实现服务调用入口和出口的统一管理。 服务网关常用功能如下:
1)路由转发:服务网关可以通过路由转发的方式,将请求分发到不同的服务实例上
2)安全鉴权:可以将安全鉴权功能放在网关进行,这样就避免了每个微服务代码中都有安全鉴权的代码
3)日志监控:因为网关可以统一管理服务的出口和入口调用,很方便进行日志监控和请求统计
4)提高性能:通过服务网关,可以缓存些静态资源
5)服务保护:网关可以实现鉴权、负载均衡、流量控制等,从一定程度上保护了服务,提高服务的稳定性
17、SpringCloud Gateway的核心概念?
1)路由:路由是网关实现的核心功能,通过配置路由的方式,将请求转发到后端的服务实例上。路由规则可以根据请求的路径、方法、请求头等方式进行匹配,最后转发到指定目标的URI。
2)过滤器:这个主要针对请求进行处理和转换。比如协议转换,鉴权,日志统计等
3)断言:主要用于请求条件的匹配,如果请求满足断言的条件,那么就会应用所配置的过滤器。SpringCloud Gateway提供了多种断言机制,比如路径匹配、请求方法匹配等
相关文章:
SpringCloud 题库
这篇文章是关于 SpringCloud 面试题的汇总,包括微服务的概念、SpringCloud 的组成及相关技术,如服务注册与发现、负载均衡、容错等,还涉及 Nacos 配置中心、服务注册表结构等原理,以及微服务架构中的日志采集、服务网关、相关概念…...
基于Filebeat打造高效日志收集流水线
1. 引言 在现代的分布式系统中,日志数据的收集、存储与分析已经成为不可或缺的一部分。随着应用程序、服务和微服务架构的普及,日志数据呈现出爆炸式增长。日志不仅是系统运行的“侦探”,能够帮助我们在出现问题时进行快速排查,还…...
《HTML 的变革之路:从过去到未来》
一、HTML 的发展历程 图片: HTML 从诞生至今,经历了多个版本的迭代。 (一)早期版本 HTML 3.2 在 1997 年 1 月 14 日成为 W3C 推荐标准,提供了表格、文字绕排和复杂数学元素显示等新特性,但因实现复杂且缺乏浏览器…...
快速了解 Aurora DSQL
上周在 AWS re:Invent大会(类似于阿里云的云栖大会)上推出了新的产品 Aurora DSQL[1] ,在数据库层面提供了多区域、多点一致性写入的能力,兼容 PostgreSQL。并声称,在多语句跨区域的场景下,延迟只有Google …...
计算机视觉与医学的结合:推动医学领域研究的新机遇
目录 引言医学领域面临的发文难题计算机视觉与医学的结合:发展趋势计算机视觉结合医学的研究方向高区位参考文章结语 引言 计算机视觉(Computer Vision, CV)技术作为人工智能的重要分支,已经在多个领域取得了显著的应用成果&…...
Scala的隐式对象
Scala中,隐式对象(implicit object)是一种特殊的对象,它可以使得其成员(如方法和值)在特定的上下文中自动可用,而无需显式地传递它们。隐式对象通常与隐式参数和隐式转换一起使用,以…...
PageHelper自定义Count查询及其优化
PageHelper自定义Count查询及其优化 文章目录 PageHelper自定义Count查询及其优化一:背景1.1、解决方法 二:利用反射判断请求参数是否有模糊查询2.1、分页不执行count2.2、思路2.3、代码示例 三:自定义COUNT查询SQL(只适用于单表)3.1、局限性…...
【数据结构】哈夫曼树
哈夫曼树 路径长度:从树中一个结点到另一个结点之间的分支构成这两个节点之间的路径,路径上的分支数目称为路径长度 树的带权路径长度:树中所有叶子结点的带权路径长度之和,通常记为WPL ∑ k 1 n w k l k \sum^{n}_{k1}w_kl_k …...
springboot422甘肃旅游服务平台代码-(论文+源码)_kaic
摘 要 使用旧方法对甘肃旅游服务平台的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在甘肃旅游服务平台的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的…...
docker中安装minio
1.首先需要搜索可用镜像,当然也可以不用 docker search minio/minio 2.拉取镜像 docker pull minio/minio 3.在本地新建两个文件夹路径 mkdir -p /opt/minio/datamkdir -p /opt/minio/config解释一下,data是文件存储的首路径。config是配置路径&…...
golang实现简单的reids服务2
golang实现redis兼容的redis服务实现redis兼容的redis服务思路 golang实现redis兼容的redis服务 之前做的redis服务是通过tcp封装的自定义协议 原版项目地址:https://github.com/dengjiayue/my-redis.git 那么能不能实现一个redis兼容的redis服务,这样一般的redis包也可以调…...
跟李笑来学美式俚语(Most Common American Idioms): Part 67
Most Common American Idioms: Part 67 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记,自用。 Github仓库链接:https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来(或者clone到本地…...
QT 中 QDateTime::currentDateTime() 输出格式备查
基础 QDateTime::currentDateTime() //当前的日期和时间。 QDateTime::toString() //以特定的格式输出时间,格式 yyyy: 年份(4位数) MM: 月份(两位数,07表示七月) dd: 日期(两位数,…...
安卓手机怎么轻松转换更新ip网络地址
随着移动互联网的快速发展,IP地址作为网络身份标识的重要性日益凸显。对于安卓手机用户来说,但有时候我们希望能够轻松转更换ip地址,以提高网络安全性或访问特定内容的需要。那么,安卓手机如何更换IP地址呢?本文将为您…...
spring项目添加本地依赖,报java程序包不存在
删除引入程序中的iml文件 重新在当前项目目录下构建项目...
嵌入式硬件-- 元器件焊接
1.锡膏的使用 锡膏要保存在冰箱里。 焊接排线端子;138度的低温锡(锡膏), 第一次使用,直接拿东西挑一点涂在引脚上,不知道多少合适,加热台加热到260左右,放在上面观察锡融化&#…...
物联网入门-Arduino的下载与配置教程(以ESP32为例)-2024
教程介绍 本次教程主要讲述如何下载与配置Arduino,以及开发版对应驱动的下载安装 原文链接:物联网入门-Arduino的下载与配置教程(以ESP32为例)-2024 步骤概述 1:下载Arduino 2:安装Arduino 3:下载安装驱动 4&am…...
防火墙旁挂部署+故障切换
一、实验环境 华为ENSP 二、拓扑 三、目的 1、内网PC1访问Server 2、防火墙旁挂部署,对流量进行过滤,防火墙挂掉之后,内网PC1能继续访问到Server 3、防火墙恢复正常后,流量能回切至防火墙转发 四、思路: 1、AR1…...
PyTorch基本使用-张量的基本运算及函数计算
文章目录 1. 张量数值计算1. 1 张量基本运算1.2 点乘运算1.3 矩阵运算 2. 张量运算函数 1. 张量数值计算 1. 1 张量基本运算 加减乘除取负号: add、sub、mul、div、neg add_ 、sub_、 mul_ 、div_、 neg_ (其中带下划线的版本会修改原数据) data torch.randin…...
C#--方法
C#的代码包装 三种实现途径:方法、类和名字空间。 • 方法是包含一系列语句的代码块。 • 类用于组合类,方法,属性。 • 将多个相关类组合成名字空间。 静态方法和静态变量 • 静态成员 在类中,使用static修饰符声明的成员称为静态…...
前端权限控制
前端权限控制 一、路由权限(控制页面访问) vue // router.js const routes [{path: /dashboard,name: Dashboard,component: () > import(/views/Dashboard.vue),meta: { requiresAuth: true, roles: [admin, manager] }},{path: /user,name: Use…...
mac下载安装jdk
背景 长时间不折腾mac全部忘记 特此记录 安装 1.下载jdk 根据需要下载对应的jdk 我直接 下载到/Applicatiions目录 https://www.oracle.com/java/technologies/downloads/#java8-mac 2.解压 cd /Applicatiions tar -zxvf jdk-8u431-macosx-x64.tar.gz 3.配置环境 …...
在线PS工具:UI设计的创新选择
对于刚踏入UI设计领域的新手来说,选择合适的在线Photoshop替代工具是至关重要的。市场上存在众多的在线设计工具,让人难以抉择。以下是10个值得尝试的在线PS工具,希望能帮助你找到最适合你的那一款。 Adobe Photoshop Photoshop是设计师们长…...
生成式AI概览与详解
1. 生成式AI概览:什么是大模型,大模型应用场景(文生文,多模态) 生成式AI(Generative AI)是指通过机器学习模型生成新的数据或内容的人工智能技术。生成式AI可以生成文本、图像、音频、视频等多种…...
数据结构与算法学习笔记----树与图的深度优先遍历
数据结构与算法学习笔记----树与图的深度优先遍历 author: 明月清了个风 first publish time: 2024.12.9 pa⭐️这里只有一道题哈哈。 Acwing 846.树的重心 给定一棵树,树中包含 n n n个节点(编号 1 ∼ n 1 \sim n 1∼n)和 n − 1 n - 1 n…...
IEEE T-RO 软体机器人手指状态估计实现两栖触觉传感
摘要:南方科技大学戴建生院士、林间院士、万芳老师、宋超阳老师团队近期在IEEE T-RO上发表了关于软体机器人手指在两栖环境中本体感知方法的论文。 近日,南方科技大学戴建生院士、林间院士、万芳老师、宋超阳老师团队在机器人顶刊IEEE T-RO上以《Propri…...
【NLP 14、激活函数 ② tanh激活函数】
学会钝感力,走向美好的方向 —— 24.12.11 一、tanh激活函数 1. tanh函数的定义 tanh是双曲正切函数(Hyperbolic Tangent),数学表达式为 其函数图像是一个S型曲线,以原点 (0,0) 为中心对称,定…...
前端如何实现签名功能
1.JS实现 前端实现签名功能,通常是通过在页面上创建一个可绘制的区域,用户可以用鼠标或触摸设备进行签名。这个区域通常是一个<canvas>元素,结合JavaScript来处理绘制和保存签名。下面是一个简单的实现步骤: 1.1. 创建HTM…...
若依将数据库更改为SQLite
文章目录 1. 添加依赖项2. 更新配置文件 application-druid.yml2.1. 配置数据源2.2. 配置连接验证 3. 更新 MybatisPlusConfig4. 解决 mapper 中使用 sysdate() 的问题4.1. 修改 BaseEntity4.2. 修改 Mapper 5. 更新 YML 配置 正文开始: 前提条件:在您的…...
CRMEB Pro版v3.2源码全开源+PC端+Uniapp前端+搭建教程
一.介绍 crmeb pro版 v3.2正式发布,全新UI重磅上线,焕然一新,不负期待!页面DIY设计功能全面升级,组件更丰富,样式设计更全面;移动端商家管理,让商城管理更便捷,还从页面…...
沐风+wordpress+主题/seo外链优化策略
夏天就是不好,穷的时候我连西北风都没得喝...
基于cms的网站设计与实现毕业论文/推广普通话手抄报
在使用ECS服务器时,发现网络流量异常,或者发现服务器有异常向外发包行为,可使用抓包工具抓取网络流量包,分析流量包的特征,看看这些流量包来自哪里,或者发向哪里了。根据这些信息,可进一步诊断异…...
城乡建设管理局的网站/广州网站营销推广
在安装由Eclipse-Hadoop-Plugin的Eclipse中, 可以直接运行Hadoop的MapReduce程序, 但是如果什么都不配置的话你发现Eclipse控制台没有任何日志输出, 这个问题可以用以下方法进行解决: 首先在工程的src目录下新建 log4j.properties 日志配置文件, 只能在src目录, 其他目录不行 1…...
网站开发的实训周的实训过程/优化公司
文章目录集合集合的创建集合的特性集合的常用操作增加删除查看练习-对集合的排序frozenset 不可变的集合字典字典的创建字典的特性字典的常用方法查看增加和修改删除遍历字典 (for)defaultdict默认字典(给字典设置默认值)内置数据…...
会搭建网站找什么工作室/谷歌seo综合查询
http://blog.csdn.net/smartempire/article/details/23168945 看关于LBP人脸识别的论文时提到了Histogram intersection这个方法,方法最初来自The Pyramid Match Kernel:Discriminative Classification with Sets of Image Features这篇论文,用来对特征构…...
肇庆市专注网站建设平台/怎么免费创建个人网站
近期微软针对Windows Azure推出了按分钟计费系统,用户在运行虚拟机、网站、云或移动服务时,可以按照实际消费的分钟数来进行支付。此外,当用户停止虚拟机后,微软将不再向用户收取任何计算时间的费用,但依然保留部署状态…...