微服务面试题

news/2024/4/20 16:29:21/文章来源:https://blog.csdn.net/weixin_48838340/article/details/129138492

目录

springcloud核心组件有哪些,分别有什么作用

微服务架构原理是什么

注册中心的原理是什么

配置中心的原理是什么

配置中心是如何实现自动刷新的

配置中心是如何保证数据安全的

用zookeeper和eureka做注册中心有什么区别

Spring Cloud和Dubbo有哪些区别

Ribbon负载均衡原理是什么

微服务熔断降级机制是什么

什么是Hystrix?实现原理是什么

ZAB协议是什么

注册中心挂了,或者服务挂了,应该如何处理


springcloud核心组件有哪些,分别有什么作用

服务注册与发现——Netflix Eureka、Nacos、Zookeeper
客户端负载均衡——Netflix Ribbon、SpringCloud LoadBalancer服务熔断器——Netflix Hystrix、Alibaba Sentinel、Resilience4]服务网关——Netflix Zuul、SpringCloud Gateway
服务接口调用——Netflix Feign、Resttemplate、Openfeign链路追踪——Netflix Sleuth、skywalking.Pinpoint
聚合Hystrix监控数据——Netflix Turbine
监控中心---- SpringBoot Admin
配置中心——Spring Cloud Config . Apollo、nacos

微服务架构原理是什么

主要是面向SOA(面向服务的架构)理念,更细小粒度服务的拆分,将功能分解到各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。

注册中心的原理是什么

服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中获取服务列表来完成服务调用

配置中心的原理是什么

在服务运行之前,将所需的配置信息从配置仓库拉取到本地服务,达到统一化配置管理的目的
 

配置中心是如何实现自动刷新的

1.配置中心Server端承担起配置刷新的职责
2、提交配置触发post请求给server端的bus/refresh接口3、server端接收到请求并发送给Spring Cloud Bus总线
4、Spring Cloud bus接到消息并通知给其它连接到总线的客户端5、其它客户端接收到通知,请求Server端获取最新配置
6、全部客户端均获取到最新的配置


配置中心是如何保证数据安全的

1.保证容器文件访问的安全性,即保证所有的网络资源请求都需要登录

⒉将配置中心里所有配置文件中的密码进行加密,保证其密文性
3.开发环境禁止拉取生产环境的配置文件

用zookeeper和eureka做注册中心有什么区别

Zookeeper保证的是CP(一致性,容错性),在存储数据的时候,它就会尽可能努力的通知到集群当中其它的一些结点。而Eureka则是AP(可用性,容错性【网络分区】)。数据的一致性和服务的可用性作取舍。然而作为注册中心的话,我们其实并不太需要数据的一致性特别的强。由于网络环境的不可靠,即使非常强的一致性,我们结点之间也不能保证互相通讯,并且服务的客户端也会在本地存储服务列表的缓存,也不需要每一次都去注册中心获取最新的服务列表。Zookeeper最开始的时候是在dubbo环境下使用,现在基本不使用zookeeper作为注册中心。

Spring Cloud和Dubbo有哪些区别

1.dubbo在传输数据的时候,使用的是dubbo协议,在传输的时候,会将包装好的对象直接发送给接收方,对象直接转成二进制来产生网络通讯,把数据包传递到对方,这样的话,不管是从序列化还是传输的过程,速度都是非常快的。

2.Spring cloud使用的是http协议,并且配合了restful风格的API,数据会封装成json,那么在数据传输的时候,json还会再转成二进制,再通过网络传输过去,我们知道所有的数据通过网络传输只能传输二进制数据,那么在这层协议上,dubbo就优于spring cloud。因为spring cloud底层的协议就是基于TCP/IP协议,而在TCP/IP协议之上,又封装了http协议。以及数据持久化的时候使用了json格式,不管是协议的包装层数上,还是数据的序列化和反序列化的效率上都不及dubbo高。

3.Dubbo只是实现了服务治理(服务的注册和监控中心),而Spring Cloud下面有几十个子项目分别覆盖了微服务架构下的方方面面,服务治理只是其中的一个方面,一定程度来说,Dubbo只是完成了远程调度,Dubbo只是Spring Cloud Netflix中的一个子集。

Ribbon负载均衡原理是什么
 

主要是靠拦截器,拦截住带有ribbon注解的方法,然后将方法转换成ip地址

1, Ribbon通过ILoadBalancer接口对外提供统一的选择服务器(Server)的功能,此接口会根据不同的负载均衡策略(lRule)选择合适的Server返回给使用者。
2, lRule是负载均衡策略的抽象,lLoadBalancer通过调用IRule的choose()方法返回Server
3 , lPing用来检测Server是否可用,lLoadBalancer的实现类维护一个Timer每隔10s检测一次Server的可用状态4, IClientConfig主要定义了用于初始化各种客户端和负载均衡器的配置信息,器实现类为DefaultClientConfiglmpl


微服务熔断降级机制是什么

微服务框架是许多服务互相调用的,要是不做任何保护的话,某一个服务挂了,就会引起连锁反应,导致别的服务也挂。Hystrix是隔离、熔断以及降级的一个框架。如果调用某服务报错(或者挂了),就对该服务熔断,在5分钟内请求此服务直接就返回一个默认值,不需要每次都卡几秒,这个过程,就是所谓的熔断。但是熔断了之后就会少调用一个服务,此时需要做下标记,标记本来需要做什么业务,但是因为服务挂了,暂时没有做,等该服务恢复了,就可以手工处理这些业务。这个过程,就是所谓的降级。

什么是Hystrix?实现原理是什么

Hystrix是一个延迟和容错库,旨在隔离对远程系统、服务和第三方库的访问点,停止级联故障,并在不可避免发生故障的复杂分布式系统中实现快速恢复。主要靠Spring的AOP实现。

实现原理
正常情况下,断路器关闭,服务消费者正常请求微服务
一段事件内,失败率达到一定阈值,断路器将断开,此时不再请求服务提供者,而是只是快速失败的方法(断路方法)
断路器打开一段时间,自动进入“半开"状态,此时,断路器可允许一个请求方法服务提供者,如果请求调用成功,则关闭断路器,否则继续保持断路器打开状态。
断路器hystrix是保证了局部发生的错误,不会扩展到整个系统,从而保证系统的即使出现局部问题也不会造成系统雪崩
 

ZAB协议是什么

ZAB协议是paxos协议的简化版本实现了主要以下几个功能:
1.ZAB协议确保那些已经在Leader服务器上提交(Commit)的事务最终被所有的服务器提交。

2.ZAB协议确保再leader重启之后继续同步之前没有完成的数据
3.ZAB协议实现了Leader选举
4.ZAB协议实现了在最快速度同步到半数节点,并会尽快的把数据同步到所有节点

注册中心挂了,或者服务挂了,应该如何处理

注册中心挂了,可以读取本地持久化里的配置
服务挂了应该配有服务监控中心感知到服务下线后可以通过配置的邮件通知相关人员排查问题


 

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

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

相关文章

@ConfigurationProperties在方法上的使用

文章目录1. 前言2. 先说结论3. 代码解释1. Component ConfigurationProperties2. EnableConfigurationProperties ConfigurationProperties3. Bean ConfigurationProperties1. 前言 在学习spring的时候,ConfigurationProperties应该经常被使用到,作用…

NCRE计算机等级考试Python真题(二)

第二套试题1、关于算法的描述,以下选项中错误的是A.算法具有可行性、确定性、有穷性的基本特征B.算法的复杂度主要包括时间复杂度和数据复杂度C.算法的基本要素包括数据对象的运算和操作及算法的控制结构D.算法是指解题方案的准确而完整的描述正确答案: …

Android 网络框架——Retrofit源码精析

众所周知,Retrofit是OkHttp的封装,APP对网络交互部分的实现基本上都是RxJavaRetrofitOkHttp架构(或协程RetrofitOkHttp),可以说,Retrofit已经广为人知。本文主要介绍Retrofit主线源码实现机制,及…

在线文档技术-编辑器篇

这是在线文档技术的第二篇文章,本文将对目前市面上所有的主流编辑器和在线文档进行一次深入的剖析和研究,从而使大家对在线文档技术有更深入的了解,也让更多人能够参与其开发与设计中来。 注意:出于对主流文档产品的尊重&#xf…

基础数据结构--线段树(Python版本)

文章目录前言特点操作数据存储updateLazy下移查询实现前言 月末了,划个水,赶一下指标(更新一些活跃值,狗头) 本文主要是关于线段树的内容。这个线段树的话,主要是适合求解我们一个数组的一些区间的问题&am…

Xcode Developer Document 开发者文档

总目录 iOS开发笔记目录 从一无所知到入门 文章目录IntroDeveloper Documentation 打开方式菜单栏点击 | 快捷键方式另一种打开方式Intro 2016年我在学校学Java的时候,要查某个Java类/方法的用法还得自己手动下载一种.chm格式的开发文档文件&#xff0c…

Oracle-RAC集群主机重启问题分析

问题背景: 在对一套两节点Oracle RAC19.18集群进行部署时,出现启动数据库实例就会出现主机出现重启的情况,检查发现主机重启是由于节点集群被驱逐导致​。 问题: 两节点Oracle RAC19.18集群,启动数据库实例会导致主机出现重启。 问题分析: 主机多次出现…

DFT基本入门介绍

1.什么是DFT?2.为什么要做DFT?3.“测试”与“验证”的区别4.DFT的核心技术1)扫描路径设计(Scan Design)2)内建自测试(Bist)3)JTAG4)ATPG5.DFT工程师的岗位职责随着芯片的制程越来小(5nm), 芯片的…

【奶奶看了也不会】AI绘画 Mac安装stable-diffusion-webui绘制AI妹子保姆级教程

1.作品图 2.准备工作 目前网上能搜到的stable-diffusion-webui的安装教程都是Window和Mac M1芯片的,而对于因特尔芯片的文章少之又少,这就导致我们还在用老Intel 芯片的Mac本,看着别人生成美女图片只能眼馋。所以小卷这周末折腾了一天&#…

Android 分区和内存监控

Andorid之所以是分区,是因为各自有对应的功能和用途的考量,可以进行单独读写和格式化。Android 设备包含两类分区:一类是启动分区,对启动过程至关重要。一类是用户分区,用于存储与启动无关的信息。启动分区boot 分区一…

数据库之高级查询

注意:第一个包含空,第二句不包含空注意:第二句是错的,聚合函数不能出现在where中。注意:相当于,按照分组属性,求出每个组的聚合函数值,所以肯定不能放单个属性有冲突with rollup是最…

一文带你搞定线程池原理

1.使用线程池的意义何在?项目开发中,为了统一管理线程,并有效精准地进行排错,我们经常要求项目人员统一使用线程池去创建线程。因为我们是在受不了有些人动不动就去创建一个线程,使用的多了以后,一旦报错就…

怎么依靠网络赚钱,网上可以做什么副业

如今,网上赚钱已经成为许多人职业生涯的选择之一。网上有很多可靠的兼职,让你在家里轻松赚钱。今天给大家推荐五份可靠的网上兼职。一、怎样选择可靠的网络兼职可靠的网络兼职一般是指在家通过网络平台完成兼职任务,完成任务后即可获得报酬。…

学习python第一天---前缀和

一、3956.截断数组(前缀和)二、前缀和(前缀和)[0]list(map(int,input().split()))三、子矩阵的和(前缀和)range(1,n1)四、K倍区间(前缀和)五、激光炸弹(前缀和&#xff0…

Spring Cache的使用--快速上手篇

系列文章目录 分页查询–Java项目实战篇 全局异常处理–Java实战项目篇 完善登录功能–过滤器的使用 更多该系列文章请查看我的主页哦 文章目录系列文章目录前言一、Spring Cache介绍二、Spring Cache的使用1. 导入依赖2. 配置信息3. 在启动类上添加注解4. 添加注解4.1 CacheP…

在Angular项目中引入NG-ZORRO

在Angular项目中引入NG-ZORRO1.前置2.安装NG-ZORRO并进行初始化配置3.引入样式4.引入组件1.前置 首先创建一个angular项目:angular创建一个新项目的步骤 这是我项目的结构: 2.安装NG-ZORRO并进行初始化配置 安装NG-ZORRO:cd 到当前项目位…

智能算法实现PID智能车控制系统

智能算法实现PID智能车控制系统可在微信公众号 *高级嵌入式软件* 里回复 *智能算法* 查看完整版文章摘要关键词第一章绪论1.1智能车概述1.2智能PID研究现状1.3本文工作第二章 PID控制简介第三章 内模PID简介3.1 内模PID控制第四章内模智能PID智能车控制系统设计4.1 系统设计4.2…

《MySQL学习》 表中随机取记录的方式

一.初始化测试表 创建表 words CREATE TABLE words ( id int(11) NOT NULL AUTO_INCREMENT, word varchar(64) DEFAULT NULL, PRIMARY KEY (id)) ENGINEInnoDB;插入测试数据 create procedure idata()begin declare i int; set i 0; while i<10000 do insert into words…

第二节类型转换、运算符

类型转换 自动类型转换&#xff1a; 类型小的变量可以赋值给大的类型变量。 表达式的自动类型转换&#xff1a; byte short char在表达式中是当做 int计算的。 强制类型转换&#xff1a; 大类型的变量转化为小类型的变量。 注&#xff1a;浮点型转换为整数是直接丢掉小数部…

尚硅谷nginx基础

nginx1. nginx安装1.1版本区别1.2安装步骤1.3 启动nginx1.4关于防火墙1.5 安装成系统服务1.6 配置nginx环境变量2. nginx基本使用2.1 基本运行原理2.2 nginx配置文件2.2.1 最小配置2.2.1.1 基本配置说明2.3 虚拟主机2.3.1域名、dns、ip地址的关系2.3.2IP地址和DNS地址的区别2.3…