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

SpringCloud面试题

SpringCloud常见组件有哪些

注册中心组件:Eureka、Nacos
负载均衡组件:Ribbon
远程调用组件:OpenFeign
网关组件:Zuul、Gateway
服务保护组件:Hystrix、Sentinel
服务配置管理组件:SpringCloudConfig、Nacos

Nacos的服务注册表结构是怎样的?

Nacos采用了数据的分级存储模型,最外层是Namespace,用来隔离环境。然后是Group,用来对服务分组。接下来就是服务(Service)了,一个服务包含多个实例,但是可能处于不同机房,因此Service下有多个集群(Cluster),Cluster下是不同的实例(Instance)。
在这里插入图片描述
namespace命名空间
在这里插入图片描述

服务、分组
在这里插入图片描述
集群、实例
在这里插入图片描述

Nacos如何支撑阿里内部数十万服务注册压力?

Nacos内部接收到注册的请求时,不会立即写数据,而是将服务注册的任务放入一个阻塞队列就立即响应给客户端。然后利用线程池读取阻塞队列中的任务,异步来完成实例更新,从而提高并发写能力。

Nacos如何避免并发读写冲突问题?

Nacos在更新实例列表时,会采用CopyOnWrite技术,首先将旧的实例列表拷贝一份,然后更新拷贝的实例列表,再用更新后的拷贝的实例列表来覆盖旧的实例列表。
这样在更新的过程中,就不会对读实例列表的请求产生影响,也不会出现脏读问题了(读旧的实例列表)。
以服务service为锁对象,同一个服务service中多个instance实例,只能串行来完成注册。多个服务service之间互不影响。

Nacos与Eureka的区别有哪些?

NacosEureka
接口方式Nacos对外暴露了Rest风格的API接口,用来实现服务注册、发现等功能Eureka都对外暴露了Rest风格的API接口,用来实现服务注册、发现等功能
实例类型Nacos的实例有永久和临时实例之分Eureka只支持临时实例
健康检测Nacos对临时实例采用心跳模式检测,对永久实例采用主动请求来检测Eureka只支持心跳模式
服务发现Nacos支持定时拉取和订阅推送(当服务发生变更时,通过订阅推送主动通知各个实例)两种模式Eureka只支持定时拉取模式(30s)

Sentinel的线程隔离与Hystix的线程隔离有什么差别?

HystixSentinel
Hystix默认是基于线程池实现的线程隔离Sentinel是基于信号量(计数器)实现的线程隔离
每一个被隔离的业务都要创建一个独立的线程池不用创建线程池
支持主动超时,支持异步调用不支持主动超时,不支持异步调用
线程的额外开销比较大,性能一般,但是隔离性更强轻量级,无额外开销,性能较好,但是隔离性一般

在这里插入图片描述

Sentinel的限流与Gateway的限流有什么差别?

限流算法常见的有三种实现:滑动时间窗口、令牌桶算法、漏桶算法。

Gateway则采用了基于Redis实现的令牌桶算法。

Sentinel限流算法

对比项滑动时间窗口令牌桶漏桶
能否保证流量曲线平滑不能,但窗口内区间越小,流量控制越平滑基本能,在请求量持续高于令牌生成速度时,流量平滑。在请求量在令牌生成速率上下波动时,无法保证曲线平滑能,所有请求进入桶内,以恒定速率放行,绝对平滑
能否应对突增流量不能,突增流量,只要高出限流阈值都会被拒绝能,桶内积累的令牌可以应对突增流量能,请求可以增存在桶内
流量控制精准度低,窗口区间越小,精度越高
默认限流模式是基于滑动时间窗口算法

滑动时间窗限流算法解决了固定时间窗限流算法的问题。其没有划分固定的时间窗起点与终点,而是将每一次请求的到来时间点作为统计时间窗的终点,起点则是终点向前推时间窗长度的时间点。这种时间窗称为“滑动时间窗”
在这里插入图片描述

排队等待的限流模式则基于漏桶算法

在这里插入图片描述
在这里插入图片描述
将每个请求视作"水滴"放入"漏桶"进行存储;
"漏桶"以固定速率向外"漏"出请求来执行,如果"漏桶"空了则停止"漏水”;
如果"漏桶"满了则多余的"水滴"会被直接丢弃。
可以理解成请求在桶内排队等待,可以处理突发请求,请求处理曲线平滑
比如单机阈值=10,也就是100ms放行一个请求

热点参数限流则是基于令牌桶算法

在这里插入图片描述

以固定的速率生成令牌,存入令牌桶中,如果令牌桶满了以后,多余令牌丢弃
请求进入后,必须先尝试从桶中获取令牌,获取到令牌后才可以被处理
如果令牌桶中没有令牌,则请求等待或丢弃
在这里插入图片描述

相关文章:

SpringCloud面试题

SpringCloud常见组件有哪些 注册中心组件:Eureka、Nacos 负载均衡组件:Ribbon 远程调用组件:OpenFeign 网关组件:Zuul、Gateway 服务保护组件:Hystrix、Sentinel 服务配置管理组件:SpringCloudConfig、Nac…...

深入了解Java Stream中的Collectors.partitioningBy()

在Java编程中,Stream API是一种强大的工具,它提供了处理集合数据的便捷方式。而Stream API中的Collectors.partitioningBy()方法则是其中一个十分有用的函数,它允许我们根据指定的条件将元素分成两个组。在本文中,我们将深入探讨这…...

下拉多选【bootstrap-multiselect】

1、引入资源 <link rel="stylesheet" href="${components}/bootstrap/css/bootstrap-multiselect.css"> <script src="${components}/bootstrap/js/bootstrap-multiselect.js"></script> 2、初始化 $("#topic-select&qu…...

建筑(八大员)报考条件

建筑八大员报考时间2024 建筑八大员每年考两次,上半年的考试时间一般在5-6月份,下半年的考试时间一般在10月左右。报名在考前2个月进行&#xff0c;2024年的考试时间和次数可能因省份而异&#xff0c;以住建厅通知为准。建筑八大员报考条件2024 1、年龄在18周岁以上(含18周…...

_remote.repositories作用

问题描述 明明我本地有某个依赖但是却还是报错&#xff0c;原因就是存在_remote.repositories且你的远程仓库中找不到该依赖&#xff0c;可能发生在你修改了远程仓库或镜像时。 例子 本地有这个依赖&#xff0c;但是报错。 解决 删除_remote.repositories文件&#xff0…...

2.3 Spark运行架构与原理

Spark运行架构由SparkContext、Cluster Manager和Worker构成。在集群模式下&#xff0c;Driver进程初始化SparkContext并向Cluster Manager申请资源&#xff0c;后者根据算法在Worker节点上启动Executor。Executor负责任务执行&#xff0c;反馈状态给Cluster Manager。任务由Ta…...

redis的跳表

typedef struct zskiplistNode {// 分值double score;// 成员对象robj *obj;// 后退指针struct zskiplistNode *backward;// 层struct zskiplistLevel {// 前进指针struct zskiplistNode *forward;// 跨度unsigned int span;} level[]; } zskiplistNode;跳表的节点查找算法可以…...

探索未知,开启海外盲盒新纪元——海外盲盒App,你的全球奇遇宝箱

一、引言 在快节奏、高压力的现代生活中&#xff0c;我们时常渴望一份来自未知的惊喜。为此&#xff0c;我们精心打造了一款全新的海外盲盒App&#xff0c;带你跨越地域界限&#xff0c;开启一场充满惊喜的全球奇遇之旅。 二、产品介绍 海外盲盒App是一款集购物、娱乐、文化…...

LeetCode2215找出两数组的不同

题目描述 给你两个下标从 0 开始的整数数组 nums1 和 nums2 &#xff0c;请你返回一个长度为 2 的列表 answer &#xff0c;其中&#xff1a;answer[0] 是 nums1 中所有 不 存在于 nums2 中的 不同 整数组成的列表。answer[1] 是 nums2 中所有 不 存在于 nums1 中的 不同 整数组…...

Git系列:git show 使用技巧

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

python爬虫(五)之新出行汽车爬虫

python爬虫&#xff08;五&#xff09;之新出行汽车爬虫 接完最后一单&#xff0c;终于肝完了最后一个python爬虫——新出行爬虫&#xff0c;将https://www.xchuxing.com网站上所有的汽车爬虫全部抓取下来。 import requests import json import csv from lxml import etree …...

记录:卡尔曼滤波推导

参考&#xff1a;古月居-卡尔曼滤波 一、高斯分布&#xff08;Gaussian Distribution&#xff09; 一维高斯分布&#xff1a;随机变量 X X X服从数学期望 μ \mu μ、方差 σ 2 \sigma^2 σ2的正态分布&#xff0c;概率密度函数为 p ( x ) p(x) p(x)。 X ∼ N ( μ , σ 2 )…...

AI游戏外挂为何违法?

尊敬的读者们&#xff0c;大家好&#xff01;今天我想和大家探讨一个备受争议的话题——AI游戏外挂的合法性。近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;AI外挂逐渐成为游戏领域的一大毒瘤。那么&#xff0c;为什么AI游戏外挂会被视为违法行为呢&#xff1f;本…...

UVa1006/LA2238 Fixed Partition Memory Management

UVa1006/LA2238 Fixed Partition Memory Management 题目链接题意输入格式输出格式 分析AC 代码 题目链接 本题是2001年icpc世界总决赛的G题 题意 早期的多程序操作系统常把所有的可用内存划分成一些大小固定的区域&#xff0c;不同的区域一般大小不同&#xff0c;而所有区域的…...

Autosar架构

蓝框那种叫component&#xff0c;绿框的叫function cluster。 接口 有三种接口&#xff0c;RTE跟SWC之间链接的叫Autosar Interface&#xff0c;RTE跟BSW的Components链接是Standardized Interface&#xff0c;RTE跟BSW的services链接的是Standardized Autosar Interface。 St…...

Java 异常介绍

在Java中,异常(Exception)是程序在运行时遇到的问题或错误的表示。异常可以是由程序错误、非法操作、资源不足或其他意外情况引起的。Java异常分为两类:受检异常(Checked Exception)和未检查异常(Unchecked Exception)。 受检异常(Checked Exception): 受检异常是编…...

vulhub靶机struts2环境下的s2-032(CVE-2016-3081)(远程命令执行漏洞)

影响范围 Struts 2.3.19至2.3.20.2、2.3.21至2.3.24.1和2.3.25至2.3.28 当用户提交表单数据并验证失败时&#xff0c;后端会将用户之前提交的参数值使用OGNL表达式%{value}进行解析&#xff0c;然后重新填充到对应的表单数据中。 漏洞搭建 没有特殊要求&#xff0c;请看 (3…...

Kubernetes之Headless Services

Kubernetes中的Headless Services&#xff08;无头服务&#xff09;是一种特殊类型的服务&#xff08;Service&#xff09;定义&#xff0c;它不提供传统意义上的负载均衡和集群IP地址分配。在无头服务中&#xff0c;spec.clusterIP 字段被显式设置为None &#xff0c;Kubernet…...

银行监管报送系统系列介绍(十七):一表通2.0

国家金融监督管理总局于9月发布了【一表通2.0&#xff08;试用版&#xff09;】&#xff08;简称&#xff1a;一表通2.0&#xff09;&#xff0c;在原试点报送范围的基础上扩大了试点报送区域&#xff0c;意味着将陆续扩大试报送机构范围&#xff0c;推进的速度已明显加快。尽早…...

网络安全之OSPF进阶

该文针对OSPF进行一个全面的认识。建议了解OSPF的基础后进行本文的一个阅读能较好理解本文。 OSPF基础的内容请查看&#xff1a;网络安全之动态路由OSPF基础-CSDN博客 OSPF中更新方式中的触发更新30分钟的链路状态刷新。是因为其算法决定的&#xff0c;距离矢量型协议是边算边…...

【2025技术栈淘汰预警】:AI Agent智能体驱动的3类岗位将在Q3起停止招聘(含LinkedIn真实岗位下架数据)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI Agent智能体未来趋势 AI Agent正从单一任务执行者演进为具备目标分解、工具调用、环境感知与持续反思能力的自主协作体。其发展不再局限于模型规模扩张&#xff0c;而是聚焦于推理架构优化、记忆机制…...

基准测试结果刚出炉,DeepSeek在医疗/法律/金融三大垂直领域事实准确率对比,谁在说真话?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;基准测试结果刚出炉&#xff0c;DeepSeek在医疗/法律/金融三大垂直领域事实准确率对比&#xff0c;谁在说真话&#xff1f; 我们基于权威垂直领域评测集——MedMCQA&#xff08;医疗&#xff09;、Case…...

Taotoken的用量看板与成本管理功能实际使用感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken的用量看板与成本管理功能实际使用感受 1. 功能定位与核心价值 在接入多个大模型进行开发时&#xff0c;一个普遍存在的困…...

Playwright×CoPilot:用自然语言驱动UI自动化的新范式

1. 这不是“写代码”&#xff0c;而是让AI替你“看屏幕、点按钮、填表单”“Playwright CoPilot&#xff1a;UI自动化的超级加速器”——这个标题里藏着一个正在悄悄改变测试和RPA工作流的事实&#xff1a;我们正从“手写定位器硬编码断言”的时代&#xff0c;跨入“用自然语言…...

信通院:人工智能模数共振体系研究报告(2026年)

这份由中国信通院与中车工业研究院 2026 年 5 月发布的《人工智能模数共振体系研究报告&#xff08;2026 年&#xff09;》&#xff0c;聚焦数据与模型双向共振&#xff0c;系统阐释模数共振体系内涵、核心要素、能力支撑、协同机制并给出落地建议&#xff0c;为 AI 与实体经济…...

工业设备数据采集太难?这款.NET8边缘网关,轻松搞定多协议对接

&#x1f308;前言如今工业数字化、智能化转型脚步越来越快&#xff0c;工厂现场各类 PLC、仪表、传感器设备型号繁杂&#xff0c;通信协议五花八门&#xff0c;设备数据采集难、协议对接繁琐、多设备统一管控麻烦&#xff0c;一直是很多制造企业、工控从业者头疼的实际问题。市…...

Borderless Gaming终极指南:如何彻底告别Alt+Tab卡顿的游戏窗口无缝切换方案

Borderless Gaming终极指南&#xff1a;如何彻底告别AltTab卡顿的游戏窗口无缝切换方案 【免费下载链接】Borderless-Gaming Play your favorite games in a borderless window; no more time consuming alt-tabs. 项目地址: https://gitcode.com/gh_mirrors/bo/Borderless-…...

【机器学习】神经网络学习手册(四)损失函数

损失函数 Loss Function 用来衡量模型“错的有多离谱” 损失函数 模型预测值 vs 真实标签之间的差距 训练目标&#xff1a;找到一组权重&#xff0c;让损失函数的值最小化 - 损失越大 预测越差&#xff0c;需要优化 - 损失越小 预测越好&#xff0c;接近目标 常见的损失函数…...

淘特App x-sign参数逆向分析与Python签名生成实战

1. 这不是“破解”&#xff0c;而是一次标准的客户端安全分析实践 “淘特App x-sign参数逆向实战&#xff1a;从抓包到算法定位”——这个标题里藏着三个关键信号&#xff1a; 淘特 &#xff08;阿里巴巴旗下特价电商App&#xff09;、 x-sign &#xff08;一个高频出现在请…...

G-Helper终极指南:免费轻量级华硕笔记本控制中心完全解决方案

G-Helper终极指南&#xff1a;免费轻量级华硕笔记本控制中心完全解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenb…...