面试题(二)

置顶面试题(二)

框架封装

框架封装

本文介绍Maven依赖管理:创建父pom,通过dependencyManagement统一管理Spring Boot、Spring Cloud及Alibaba版本,并继承父pom实现依赖复用;同时提供公共代码,如结果码接口和枚举类,用于统一操作结果返回。

分布式事务

分布式事务

本文介绍了微服务核心组件:服务发现(Nacos原理)、客户端负载均衡策略、OpenFeign声明式调用及其动态代理实现。重点阐述了分布式事务的多种方案:2PC/XA的性能问题、TCC的编码补偿、AT模式利用undo_log自动补偿、Saga长事务补偿,并提及重试幂等方案。强调各方案优缺点及适用场景,需根据业务权衡。

微服务调用

微服务调用

本文介绍了基于 Nacos 的服务发现与调用方案,解决硬编码 IP:端口 带来的配置困难和地址变化问题。通过注册中心动态获取服务地址,实现提供方与调用方解耦;结合 Spring Cloud LoadBalancer 实现负载均衡,并讲解 OpenFeign 声明式调用的核心原理:动态代理与反射。

微服务入门

微服务入门

本文回顾了Java后端技术栈及企业级架构从单体、SOA到微服务、云原生、AI原生的演进,指出业务增长驱动分布式需求。介绍了微服务与分布式系统关系、CAP定理和BASE理论,并重点讲解Spring Cloud作为微服务工具集,涵盖Nacos、Sentinel、Gateway等组件,以及服务分层与独立数据库的设计要点。

电商SPU与SKU详解

电商SPU与SKU详解

电商 SPU 与 SKU 详解 一、概念定义 1. SPU(Standard Product Unit,标准产品单位) SPU 是商品的"属性集合",代表"是什么商品",是商品的最小聚合单位。 它是一组可复用、易检索的标准化信息的集合,描述的是商品的核心属性(如品牌、型号、名称、类目),但不包含具体

nacos面试题

nacos面试题

nacos的临时实例和持久化实例的区别 临时实例:注册时向nacos发起注册,并隔一段时间就发送健康检测,健康检测内容:服务名+ip+端口+更新内存中的lastUpdatedTime(nacos就是根据这个时间隔了多久还没有更新来判断是否存活的),因为状态是由实例自己传来的,nacos不能保证其真实

33-多线程使用

33-多线程使用

本文介绍了多线程的概念、应用场景(防止主线程阻塞、提高CPU利用率),以及三种实现方式:继承Thread、实现Runnable、使用线程池。重点讲解了ThreadPoolExecutor的核心参数(核心/最大线程数、队列、拒绝策略)和工作原理(有界/无界队列、同步移交),并给出了Spring MVC中配置和使用线程池的方法。

32过滤器和拦截器的区别

32过滤器和拦截器的区别

过滤器和拦截器都能在请求前后执行逻辑,但本质不同:过滤器基于Servlet规范,工作在容器层,通过责任链模式执行,不依赖Spring;拦截器基于Spring MVC框架,通过动态代理实现,依赖IoC容器,可访问Controller方法及注解。请求先经过过滤器链,再到DispatcherServlet,最后进入拦截器链。过滤器适合通用处理(如编码、静态资源),拦截器适合业务相关操作(如权限校验、日志记录)。

31AOP使用场景学习笔记

31AOP使用场景学习笔记

AOP是一种编程范式,通过将日志、事务等横切关注点模块化为“切面”,实现与业务逻辑的分离。核心概念包括切面、连接点、切入点、通知和织入。Spring AOP默认使用JDK动态代理或CGLIB代理实现运行时织入,支持前置、后置、异常、最终和环绕通知。常见应用场景有日志记录和事务管理,有效减少代码重复与耦合。

springboot+websocket实时聊天(一)

springboot+websocket实时聊天(一)

本文介绍基于Spring Boot WebSocket实现实时聊天功能的通用模板,涵盖功能概述、技术选型、数据库设计及后端实现。支持在线用户收发文字/图片消息,消息异步持久化至MySQL,离线用户通过REST拉取历史,按业务维度(如订单、群组)管理会话。推荐使用MQ异步写入、对象存储图片,并提供无MQ变体方案。