面试宝典之微服务框架面试题

S1、集群与分布式有啥区别?

(1)相同点:
分布式和集群都是需要有很多节点服务器通过网络协同工作完成整体的任务目标。

(2)不同点:
分布式是指将业务系统进行拆分,即分布式的每一个节点都是实现不同的功能。而集群每个节点做的是同一件事情。

S2、什么是微服务?

(1)微服务是一种架构风格。

  • 微:小
  • 服务:能够独立部署,运行,提供功能的系统服务。

(2)思想:

  • 大的系统模块拆分成一个个的小功能模块,独立部署,共同组合成一个大的系统。
  • 微服务是一种特殊的分布式架构,架构思想相同,微服务的拆分力度更细,可以说微服务架构是分布式架构的子集。

S3、微服务架构有啥有点?

(1)灵活,扩展性极强。
(2)易于协同开发,责任划分明确。
(3)符合“高内聚,低耦合” 的编程思想。
(4)不受技术栈限制,方便系统迭代。

S4、微服务架构的缺点

(1)运维成本增加。(容器docker)
(2)跟踪问题复杂了。(统一的日志,链路追踪)

S5、微服务的拆分原则

(1)维度:时间,空间,成本,地域,业务….

(2)简单实用:横向提取,纵向切割。

  • 横向(水平):将系统中公共独立的功能提取出来。
  • 纵向(垂直):将系统按照业务功能模块切分,每个模块就是一个微服务。

S6、远程调用中RESTful和RPC有啥区别?

(1)目前主流的远程调用技术有基于HTTP的RESTful接口以及基于TCP的RPC协议。
(2)RESTful通讯协议HTTP,经常写的RestController就是RESTful风格,特点是比较灵活,通常用于微服务架构。
(3)RPC通讯协议一般使用TCP,性能较好,不如RESTful灵活,通常用于SOA架构。

S7、RestTemplate有啥用?

Spring框架提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接,我们只需要传入url及返回值类型即可。相较于之前常用的HttpClient,RestTemplate是一种更优雅的调用RESTful服务的方式。

S8、说说你对CAP理论的理解?

  • 特点

(1)Consistency(一致性)
数据一致更新,所有数据的变化都是同步的
(2)Availability(可用性)
在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求
(3)Partition tolerance(分区容忍性)

  • 原理

(1)CAP目标:某个节点的故障,并不影响整个系统的运行
(2)CAP原理:任何分布式系统只可同时满足二点,没法三者兼顾,既然一个分布式系统无法同时满足一致性、可用性、分区容错性三个特点, 所以我们就需要抛弃一样;

CAP原理

  • 选择

CAP选择

S9、SpringCloud有哪些常用组件?

(1)Eureka(注册中心)、Nacos
(2)Zuul(网关)、Gateway
(3)Fegin(远程调用)、OpenFeign
(4)Ribbon(负责均衡)
(5)Hystrix(熔断器)

S10、SpringCloud Alibaba组件?

(1)Nacos(配置中心与注册中心)
(2)Sentinel(熔断与限流)
(3)Seata(分布式事务)

S10、服务熔断和服务降级有什么区别?

  • 相同点

(1)目的是一致的:都是从可用性和可靠性出发,为了防止系统崩溃;
(2)用户体验类似:最终都让用户体验到的是某些功能暂时不可用;

  • 不同点

触发原因不同:
(1)服务熔断一般是某个服务(下游服务)故障引起;所以熔断是被动的。
(2)服务降级一般是从整体负荷考虑,并发太大,先保证整体的可用;所以降级是主动。

S11、Zuul和Gateway的区别?

  • Zuul:
    使用的是阻塞式的 API,不支持长连接,比如 websockets。
    底层是servlet,Zuul处理的是http请求
    没有提供异步支持,流控等均由hystrix支持。
    依赖包spring-cloud-starter-netflix-zuul。

  • Gateway:
    Spring Boot和Spring Webflux提供的Netty底层环境,不能和传统的Servlet容器一起使用,也不能打包成一个WAR包。
    依赖spring-boot-starter-webflux和/ spring-cloud-starter-gateway
    提供了异步支持,提供了抽象负载均衡,提供了抽象流控,并默认实现了RedisRateLimiter。

  • 相同点

(1)底层都是servlet
(2)两者均是web网关,处理的是http请求

  • 不同点

(1)内部实现不同

  • gateway对比zuul多依赖了spring-webflux,在spring的支持下,功能更强大,内部实现了限流、负载均衡等,扩展性也更强,但同时也限制了仅适合于Spring Cloud套件
  • zuul则可以扩展至其他微服务框架中,其内部没有实现限流、负载均衡等。

(2)是否支持异步

  • zuul仅支持同步
  • gateway支持异步。理论上gateway则更适合于提高系统吞吐量(但不一定能有更好的性能),最终性能还需要通过严密的压测来决定
理解思路
  • 出生不一样:zuul是奈菲公司开源,gateway是spring官方开源
  • zuul是阻塞模型,使用了线程池,所以高并发时,可能导致转发失败,是同步
  • gateway使用的多路IO服用模型,是非阻塞,可以应对高并发,是异步

S12、SpringBoot的常用注解有哪些?

  • @Controller
  • @RestController
  • @Service
  • @RequestMapping
  • @RequestBody
  • @PathVariable
  • @RequestParam
  • @ResponseBody
  • @Autowired
  • @Component
  • @Bean

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

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

相关文章

Java微服务架构实践指南

Java 微服务架构是一种在软件开发中越来越受欢迎的架构风格,它将复杂的单体应用程序拆分成一组小型、独立的服务。每个服务都可以独立开发、部署和扩展,并通过轻量级通信机制相互协作。以下是 Java 微服务架构的实践指南: 拆分服务&#xff…

SpringBoot 注解超全详解(整合超详细版本)

使用注解的优势: 采用纯java代码,不在需要配置繁杂的xml文件 在配置中也可享受面向对象带来的好处 类型安全对重构可以提供良好的支持 减少复杂配置文件的同时亦能享受到springIoC容器提供的功能 1注解详解(配备了完善的释义&#xff09…

力扣433. 最小基因变化

广度优先搜索 思路: 经过分析可知,基因 A 突变到基因 B,需要满足以下条件: 序列 A 与序列 B 只有一个字符不同;变化字符在集合中;突变后的基因 B 一定在 bank 中;尝试搜索所有合法突变的基因集…

Pycharm中如何配置python环境(conda)

首先在pycharm中点击 "File" > "Settings" 再次点击如下操作: 点击Python Interpreter的最右侧按钮,点击Show All... 找到python文件 最后点击OK

若依项目的table列表中对每一个字段增加排序按钮(单体版和前后端分离版)

一、目标:每一个字段都添加上下箭头用来排序 只需要更改前端代码,不需要更改后端代码,后面会讲解原理 二、单体版实现方式: 1.在options中添加sortable:true 2.在需要排序的字段中添加sortable:true 三、前后端分离版 1.el-tab…

Open CASCADE学习|非线性方程组

非线性方程组是一组包含非线性数学表达式的方程,即方程中含有未知数的非线性项。解这类方程组通常比解线性方程组更为复杂和困难。 非线性方程组在很多领域都有应用,例如物理学、工程学、经济学等。解决非线性方程组的方法有很多种,包括数值…

Unity中打印信息的两种方式

不继承MonoBehaviour的普通C#类中打印信息: 使用Debug类的方法: Unity提供了Debug类,其中包含了一些用于打印信息的静态方法。以下是常用的几种方法: Debug.Log(message):打印普通信息。Debug.LogWarning(message)&a…

面试题-DAG 有向无环图

有向无环图用于解决前后依赖问题,在Apollo中用于各个组件的依赖管理。 在算法面试中,有很多相关题目 比如排课问题,有先修课比如启动问题,需要先启动1,才能启动2 概念 顶点: 图中的一个点,比…

09、Kafka ------ 通过修改保存时间来删除消息(retention.ms 配置)

目录 通过修改保存时间来删除消息★ 删除指定主题的消息演示1、修改kafka检查过期消息的时间间隔2、修改主题下消息的过期时间3、查看修改是否生效4、先查看下主题下有没有消息5、添加几条消息看效果6、查看消息是否被删除 ★ 恢复主题的retention.ms配置1、先查看没修改前的te…

【开源】基于JAVA语言的教学过程管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 教师端2.2 学生端2.3 微信小程序端2.3.1 教师功能如下2.3.2 学生功能如下 三、系统展示 四、核心代码4.1 查询签到4.2 签到4.3 查询任务4.4 查询课程4.5 生成课程成绩 六、免责说明 一、摘要 1.1 项目介绍 基于JAVAVu…

了解一下InternLM2

大模型的出现和发展得益于增长的数据量、计算能力的提升以及算法优化等因素。这些模型在各种任务中展现出惊人的性能,比如自然语言处理、计算机视觉、语音识别等。这种模型通常采用深度神经网络结构,如 Transformer、BERT、GPT( Generative P…

云平台架构知识点总结

云平台架构 内部特供 版权所有 翻版必究 项目1 云计算的认知与体验 1.1 云计算定义 ​ 维基百科定义:云计算将IT相关的能力以服务的方式提供给用户,允许用户在不了解提供服务的技术﹑没有相关知识以及设备操作能力的情况下,通过Internet 获取需要的…

Guava:StopWatch 计时器

简介 StopWatch 用来计算经过的时间(精确到纳秒)。 这个类比调用 System.now() 优势在于: 性能 表现形式更丰富 类方法说明 官方文档:Stopwatch (Guava: Google Core Libraries for Java 27.0.1-jre API) 方法名称方法描述…

浅谈有源滤波在某棉纺企业低压配电室节能应用

叶根胜 安科瑞电气股份有限公司 上海嘉定 201801 0引言 在电力系统中,谐波的根本原因是非线性负载。由于电子设备、变频器、整流器等。在棉纺企业的大部分设备中被广泛使用,因此会产生大量的谐波电流。我公司的环锭纱线和筒车间的配电设备受到谐波的影…

c语言:输入成绩,统计不及格人数|练习题

一、题目 输入学生成绩&#xff0c;统计不及格的学生人数 二、代码截图【带注释】 三、源代码【带注释】 #include <stdio.h> //题目&#xff1a;输入成绩&#xff0c;统计不及格人数 //思考分析 //1、由于学生人数是未知数&#xff0c;所以可以在输入时&#xff0c;以0…

TextDiffuser-2:超越DALLE-3的文本图像融合技术

概述 近年来&#xff0c;扩散模型在图像生成领域取得了显著进展&#xff0c;但在文本图像融合方面依然存在挑战。TextDiffuser-2的出现&#xff0c;标志着在这一领域的一个重要突破&#xff0c;它成功地结合了大型语言模型的能力&#xff0c;以实现更高效、多样化且美观的文本…

前端开发Docker了解

1&#xff0c;docker简介 docker主要解决了最初软件开发环境配置的困难&#xff0c;完善了虚拟机部署的资源占用多&#xff0c;启动慢等缺点&#xff0c;保证了一致的运行环境&#xff0c;可以更轻松的维护和扩展。docker在linux容器的基础上进行了进一步的封装&#xff0c;提…

Java--业务场景:获取请求的ip属地信息

文章目录 前言步骤在pom文件中引入下列依赖IpUtil工具类在Controller层编写接口&#xff0c;获取请求的IP属地测试接口 IpInfo类中的方法 前言 很多时候&#xff0c;项目里需要展示用户的IP属地信息&#xff0c;所以这篇文章就记录一下如何在Java Spring boot项目里获取请求的…

springboot集成jsp

首先pom中引入依赖包 <!--引入servlet--> <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId> </dependency> <!--引入jstl标签库--> <dependency><groupId>javax.servle…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷③

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷3 目录 需要竞赛软件包环境以及备赛资源可私信博主&#xff01;&#xff01;&#xff01; 2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷3 模块一 …