当前位置:   article > 正文

JAVA面试题:微服务篇_java微服务面试题

java微服务面试题

1.spring cloud 5大组件有哪些?

一代:

eureka:注册中心

ribbon:负载均衡

feign:远程调用

hystrix:服务熔断

getway:网关

二代阿里云:

nacos:注册中心/配置中心

ribbon:负载均衡

feign:远程调用

sentinel:服务保护

getway:网关

2.服务注册和服务发现什么意思?spring cloud如何实现服务注册发现?

spring cloud实现服务主要有三部分内容:

服务注册:服务提供者向注册中心注册自己的信息,由注册中心来保存这些信息。

服务发现:服务消费者在注册中心拉取服务提供者所存贮的列表信息,如果服务有集群,则采用负载均衡选择一个服务发起调用。

服务监控:服务提供者每隔一段时间向注册中心发送一次心跳,如果在指定时间内没有收到服务提供者发送的心跳,则从注册中心剔除。

3.nacos与eureka的区别?

nacos相比于eureka而言,他除了支持注册中心,还支持配置中心,而且nacos还可以主动监测服务提供者,临时实例采用心跳监测,非临时实例采用主动监测。

4.你们项目的负载均衡如何实现?

我们的项目中的负载均衡是通过ribbon实现的,feign的底层已经实现的ribbon所以使用起来非常简单,在拉取服务列表信息的时候,如果是集群则用负载均衡,按照一定的路由策略发起调用,这种策略一般是选择轮询。

5.ribbon负载均衡策略有哪些?

轮询,随机,按权重选择响应时间越长权重越小,区域敏感策略(就近原则)。

6.如果想自定义负载均衡策略如何实现?

有两种方式:

第一种是通过iRual接口实现,这个是对全局生效的。

第二种是可以通过客户端配置文件,配置一个服务的负载均衡策略,这个只对单个服务有效。

7.什么是服务雪崩怎么解决这个问题?

服务雪崩指的是,一个服务不可用,导致调用这个服务服务的服务也不可用,从而导致整个链路的服务不可用。

解决服务雪崩有两种方式:

服务降级:他是服务自我保护的一种方式,或者说是保护下游服务的一种方式,他的主要作用是不会受请求突增影响,而变得不可用,保证服务不会崩溃。

服务熔断:他默认是关闭的需要手动打开,在一定时间内服务请求失败超过一定的阈值,就会开启服务熔断,然后每个一段时间重新请求微服务,如果请求可达,则关闭熔断,如果服务还是不可达,则继续走熔断机制。

8.你们的微服务是怎么监控的?

我们采用的是运维的监控系统skywalking进行监控的,他可以监控接口,服务,物理实例的一些状态。我们还设置了警告装置,当服务上线出现问题后,skywalking可以给相关负责人发送邮件。

9.你们项目有没有做过限流?怎么做的?

我们当时使用nginx限流,nginx里面有一种漏桶算法,他可以让请求以固定的频率处理请求,可以应对突发请流量请求。

10.限流的常见算法有哪些?

漏桶算法:将请求放入一个漏桶中,按照一定的频率处理请求。

令牌桶:将令牌放入一个桶中,按照一定频率生成令牌,每个请求需要先申请令牌,申请到令牌后才能够处理。

11.什么是CAP理论?

cap分别对应的是一致性,可用性,和分区容错性。

一致性:在同一时间保存的数据必须完全一致。

可用性:系统提供的服务必须一直保持在可用状态。

分区容错性:指的是分布式系统在遇到任何网络分区故障时,都能够保持一一致性和可用性的服务。除非整个网络环境都发生故障。

12.为什么分布式系统中无法同时保证一致性和可用性?

因为分布式系统必须保持分区容错性,所以只能从一致性和可用性之间进行取舍,满足一致性就不能够满足可用性,反之也成立,所以只能在偏向CP和偏向AP之间进行取舍。

13.什么是BASE理论?

也是一种分布式设计理论,他是分布式方案中AP方案的延伸,AP方案就是无法保证一致性,但是BASE理论是即使无法做到强一致性但要保证最终一致性,他的思想包含三个方面:

1.基本可用:系统发生故障时,允许损失部分可用性,但不代表整体不可用。

2.软状态:允许存在中间状态

3.最终一致性:保证数据最终能够达到一致的状态。

14.你们采用哪种分布式事务解决方案?

采用seata的at模式来解决分布式方案。

15.分布式事务接口幂等性如何设置?

我们在健康之源项目中有一个下单的操作,我们当时使用的是token+redis实现的,流程是这样的:

1.用户点击打开这个页面时,前端会生成一个唯一token发送到后端,存入到redis中,同时把这个token返回给前端。

2,。当用户点击下单操作后,会携带这个token进入后端reids中,产看这个token是否存在,如果存在则继续进行后需操作,如果不存在就停止下单返回服务。

16.xxl-job路由 策略有哪些?

xxl-job提供的路由策略有很多,我们平时用的比较多的就是:轮询,故障转移,分片广播。

17.xxl-job任务执行失败怎么解决?

1.可以使用故障转移策略,使用健康的实例执行任务。

2.创建任务时可以设置重置重新次数。

18.如果有大数据量的任务同时需要执行该怎么解决?

部署多个实例共同去执行这些任务,路由策略选择分片广播。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/795837
推荐阅读
相关标签
  

闽ICP备14008679号