Java后端开发面试题——微服务篇总结

Spring Cloud 5大组件有哪些?

随着SpringCloudAlibba在国内兴起 , 我们项目中使用了一些阿里巴巴的组件

注册中心/配置中心 Nacos

负载均衡 Ribbon

服务调用 Feign

服务保护 sentinel

服务网关 Gateway

Ribbon负载均衡策略有哪些 ?

RoundRobinRule:简单轮询服务列表来选择服务器

WeightedResponseTimeRule:按照权重来选择服务器,响应时间越长,权重越小

RandomRule:随机选择一个可用的服务器

BestAvailableRule:忽略那些短路的服务器,并选择并发数较低的服务器

RetryRule:重试机制的选择逻辑

AvailabilityFilteringRule:可用性敏感策略,先过滤非健康的,再选择连接数较小的实例

ZoneAvoidanceRule:以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。而后再对Zone内的多个服务做轮询

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

指定负载均衡策略(全局)

可以配置某一个服务调用的负载均衡策略(局部)

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

限流的实现方式:

Tomcat:可以设置最大连接数

Nginx,漏桶算法

网关,令牌桶算法

自定义拦截器

Nginx限流

key:定义限流对象,binary_remote_addr就是一种key,基于客户端ip限流

Zone:定义共享存储区来存储访问信息,10m可以存储16wip地址访问信息

Rate:最大访问速率,rate=10r/s 表示每秒最多请求10个请求

burst=20:相当于桶的大小

Nodelay:快速处理

网关限流

key-resolver :定义限流对象( ip 、路径、参数),需代码实现,使用spel表达式获取 replenishRate :令牌桶每秒填充平均速率。

urstCapacity :令牌桶总容量。

分布式服务的接口幂等性如何设计?

需要幂等场景

用户重复点击(网络波动)

MQ消息重复

应用使用失败或超时重试机制

基于RESTful API的角度对部分常见类型请求的幂等性特点进行分析

token+redis

你们项目中使用了什么分布式任务调度

xxl-Job

解决集群任务的重复执行问题

cron表达式定义灵活

定时任务失败了,重试和统计

任务量大,分片执行

xxl-job路由策略有哪些?

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

故障转移+失败重试

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

执行器集群部署时,任务路由策略选择分片广播情况下,一次任务调度将会广播触发对应集群中所有执行器执行一次任务

在任务执行的代码中可以获取分片总数和当前分片,按照取模的方式分摊到各个实例执行

相关推荐
安迪小宝13 分钟前
python基础语法13-装饰器
开发语言·前端·python
小八四爱吃甜食14 分钟前
【R语言绘图】圈图绘制代码
开发语言·r语言
残月只会敲键盘15 分钟前
C++ Lambda表达式简明指南:新手快速上手
开发语言·c++
SoFlu软件机器人30 分钟前
AI 重构 Java 遗留系统:从静态方法到 Spring Bean 注入的自动化升级
java·spring·重构
liwulin050632 分钟前
【JAVA】JVM 堆内存“缓冲空间”的压缩机制及调整方法
java·开发语言·jvm
Simon—欧阳44 分钟前
C#异步方法返回Task<T>的同步调用
开发语言·前端·javascript
程序员小假1 小时前
十个JVM核心知识点【全文万字保姆级详细讲解】
java·后端
michaelzhouh1 小时前
php调用大模型应用接口实现流式输出以及数据过滤
开发语言·php·php调用大模型api流式输出
小郝 小郝1 小时前
【C语言】浮点数在内存的储存
c语言·开发语言
道友老李1 小时前
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(三):SpringSecurity请求流转的本质
微服务·云原生·架构