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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

双位置继电器DLS-5/2TH 额定电压:110VDC 触点形式:7开3闭 柜内安装

系列型号: DLS-5/1电磁式双位置继电器; DLS-5/2电磁式双位置继电器; DLS-5/3电磁式双位置继电器; DLS-5/2G电磁式双位置继电器; DLS-5/3 220VDC双位置继电器 一、用途 1.1用途 DLS-5双位置继电器(以下简称产品)用于各种保护与自动控制系统中,作为切换…

亚马逊实时 AI 编程助手 CodeWhisperer使用体验

文章目录 1:什么是CodeWhisperer ?2:试用3:上手体验 1:什么是CodeWhisperer ? 最近ChatGPT展现出强大AI能力给我们带来了深刻的影响,AI现在不是一个概念,基于AI的产品一定在各行各业…

Hex2Bin转换软件、Bootloader 、OTA加密升级 、STM32程序加密、其他MCU同样适用

说明:这个工具可以将 Hex 文件 转换为 Bin 格式文件,软件是按自己开发 STM32 OAT 功能需求开发的一款辅助 上位机软件。 文中的介绍时 bootloader boot 文档在补充完善中... 有兴趣的朋友可留言探讨。 1. 软件功能: 1.生成 bin&#x…

test fuzz-05-模糊测试 kelinci AFL-based fuzzing for Java

拓展阅读 开源 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) 开源 Junit performance rely on junit5 and jdk8.(java 性能测试框架。性能测试。压测。测试报告生成。) test fuzz-01-模糊测试(Fuzz Testing) test fuzz-…

javacc知识点

javacc的语法描述性文件以.jj结尾,一般情况下采用 1、option{JavaCC的选项} options部分,用于放置 JavaCC 的选项,常见option包括: STATIC:用于决定JavaCC生成的所有成员及方法是否被定义为static(注意:定义…

如何在Android Glide中结合使用CenterCrop和自定义圆角变换(图片部分圆角矩形)

如何在Android Glide中结合使用CenterCrop和自定义圆角变换(图片部分圆角矩形) 在Android开发中,使用Glide加载图片时,我们经常需要对图片进行特定的处理,比如裁剪和圆角变换,特别是一些设计稿,…

FS【1】:SSP

文章目录 前言1. Abstract2. Introduction2.1. Motivation2.1.1. Few-shot Segmentation (FSS) Task2.1.2. Few-shot Segmentation (FSS) Problem 2.2. Contribution 3. Methods3.1. Motivation3.2. Overview of the architecture4.3. Self-support Prototype4.4. Adaptive Sel…

代理IP连接不上?网速过慢?自检与应对方法来了

当您使用代理时,您可能会遇到不同的代理错误代码显示代理IP连不通、访问失败、网速过慢等种种问题。 在本文中中,我们将讨论您在使用代理IP时可能遇到的常见错误、发生这些错误的原因以及解决方法。 一、常见代理服务器错误 当您尝试访问网站时&#…

用户管理第一节课,阿里生成代码包

鱼皮教程生成所用到的 一、网址 网址: Cloud Native App Initializer (aliyun.com) 二、仿照生成 2.1 Maven Project & Java 2.2 Spring Boot版本 2.3 高级选项 2.3.1 项目名称可根据需求改 注意:不要有空格 2.4 应用架构 选择:单…

彻底关闭win10的自动更新Update

停止更新服务 任务管理器中search windows update,停止服务,以及禁止恢复里面的action 停止任务计划 computer 右键 电脑管理,停止全部工作计划。

慕课热搜01

uniapp过滤器使用 创建一个过滤器: 在入口函数注册过滤器 // 注册过滤器 import * as filters from "./filters/index.js"Object.keys(filters).forEach(key>{Vue.filter(key,filters[key]) })使用过滤器: onPageScroll , uniapp监听滚动…

Web APIs知识点讲解

学习目标: 能获取DOM元素并修改元素属性具备利用定时器间歇函数制作焦点图切换的能力 一.Web API 基本认知 1.作用和分类 作用: 就是使用 JS 去操作 html 和浏览器分类:DOM (文档对象模型)、BOM(浏览器对象模型) 2.DOM DOM(Document Ob…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第六天-Linux信号(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…

GBASE南大通用 GBase 8a 产品构建数仓系统架构

l GBASE南大通用 GBase 8a 产品构建数仓应用的系统架构: 架构 技术实现特点 适用场景 独立数据仓库(集市)系统架构 一套GBase 8a物理集群 适用于数据规模较小的业务场景 适用于各业务之间数据互访较频繁的业务场景 适用于单一独立的业务…

k8s源码阅读环境配置

源码阅读环境配置 k8s代码的阅读可以让我们更加深刻的理解k8s各组件的工作原理,同时提升我们Go编程能力。 IDE使用Goland,代码阅读环境需要进行如下配置: 从github上下载代码:https://github.com/kubernetes/kubernetes在GOPATH目…

Python之文件的相关操作

文件和文件夹的移动、复制、删除、重命名 一、概述 Python中对文件和文件夹进行移动、复制、删除、重命名,主要依赖os模块和shutil模块,以下用实例集中演示文件的移动、复制、删除、重命名,用到的时候直接查询即可。 二、实例 1 #!/usr/bi…

C++11教程:C++11新特性大汇总(第六部分)

C11是2011年发布的C标准,是C的一次重大升级。 第十二部分:C多文件编程 十一、C11列表初始化(统一了初始化方式) 我们知道,在 C98/03 中的对象初始化方法有很多种,请看下面的代码: //初始化列…

C#编程-实现在文本文件中的读和写

实现在文本文件中的读和写 Stream类用于从文本文件读取数据和向文本文件写入数据。它是一个抽象类,支持向流读写字节。如果文件的数据仅是文本,那么您可以使用StreamReader类和StreamWriter类来完成相应的读和写任务。 StreamReader类 StreamReader类继承自从抽象类TextRea…

大家都在问的牛仔外套来啦

经典永不过时的牛仔外套, 绝对是衣橱里必不可少的时尚单品之一 重工水洗破洞乞丐风,个性潮流感十足 时尚帅气,男宝女宝都能穿还有妈妈款哦 经典宽松版型,不挑身材不挑人穿对身材包容性很强 怎么穿都好看,简单搭配…

手轮脉冲平滑处理笔记

这是一个求手脉倍率((Hw_Control.mult_ratio)与手脉脉冲计数延迟次数即累计过去n次的平均值(Hw_Control.lag_num)之间关系算法的计算过程笔记文档 1、已知 mult_ratio=1时 lag_num=10; mult_ratio=10时 lag_num=20; .mult_ratio==100时 lag_num=30; 以此类推 2、设lag_num…