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任务执行失败怎么解决?

故障转移+失败重试

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

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

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

相关推荐
做题不NG几秒前
大模型应用开发-LangChain4j
java
今天背单词了吗9803 分钟前
算法学习笔记:7.Dijkstra 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·数据结构·笔记·算法
Eiceblue6 分钟前
使用 C# 发送电子邮件(支持普通文本、HTML 和附件)
开发语言·c#·html·visual studio
小小小小王王王11 分钟前
hello判断
开发语言·c#
高兴达1 小时前
RPC--Netty客户端实现
java·spring·rpc
苦夏木禾1 小时前
js请求避免缓存的三种方式
开发语言·javascript·缓存
重庆小透明1 小时前
力扣刷题记录【1】146.LRU缓存
java·后端·学习·算法·leetcode·缓存
超级土豆粉1 小时前
Turndown.js: 优雅地将 HTML 转换为 Markdown
开发语言·javascript·html
lang201509281 小时前
Reactor操作符的共享与复用
java
TTc_2 小时前
@Transactional事务注解的批量回滚机制
java·事务