logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【RabbitMQ】消息丢失的 6 大场景及解决方案

RabbitMQ消息传递存在4个关键丢失环节:生产端到Broker、Broker内存崩溃、Broker到消费端、消费端处理失败。解决方案包括:1)生产端启用PublisherConfirms+消息持久化;2)Broker端使用QuorumQueue多副本+队列持久化;3)消费端关闭autoAck,业务处理完成才手动ACK;4)消费端实现幂等处理(唯一键/Redis去重)。金融场景需特别注意:配置D

#后端#rabbitmq
CGLIB 代理 vs JDK 代理:能解决哪些事务失效问题?

摘要:JDK动态代理基于接口实现,只能代理public方法;CGLIB通过继承方式能代理private/protected方法,但无法代理final/static方法。SpringBoot 2.x+默认使用CGLIB代理。CGLIB主要解决"方法可见性"问题,对于事务失效的核心问题(异常处理、this调用等)仍需通过手动回滚、配置rollbackFor、注入self等方式解决。

#java#开发语言#spring
Spring 单例 Bean 是线程安全的吗?

摘要: Spring单例Bean的线程安全取决于其状态:无状态Bean(如Service/DAO)因无可变成员变量而天然线程安全;有状态Bean需开发者自行处理同步问题,常用方案包括:@Scope("prototype"):每次注入新实例,但牺牲性能; ThreadLocal(如金融项目中的用户上下文); 并发工具类(AtomicXxx/ConcurrentHashMap);

#java#开发语言
Spring Boot 2.0 改 CGLIB 后,接口实现是否有影响

直接new对象(如OrderService self = new OrderService()),绕过容器导致事务/拦截失效,CGLIB因类型兼容更易误用; 强制类型转换到具体类,CGLIB代理虽能强转成功(继承实现类),但可能混淆代理逻辑(如super调用绕过增强); 混用自定义JDK代理(如Proxy.newProxyInstance)与Spring管理的CGLIB代理,行为可能不一致。 原因

#java#开发语言#spring
Spring 3 级缓存解决循环依赖

摘要:Spring通过三级缓存机制解决循环依赖问题: 三级缓存结构: 一级缓存(singletonObjects)存储完整Bean 二级缓存(earlySingletonObjects)存储半成品Bean(已实例化未初始化) 三级缓存(singletonFactories)存储ObjectFactory,动态生成早期引用(支持AOP代理) 核心流程: 实例化A → 暴露ObjectFactory到

#java#spring
Spring Cloud 5 大组件 · 单个服务开发顺序

详细介绍了微服务架构中五大核心组件的开发顺序与实现方法。开发顺序严格遵循:1)先搭建Eureka注册中心作为服务发现基础;2)通过Feign实现服务间远程调用;3)利用Ribbon进行负载均衡(集成于Feign);4)使用Hystrix实现服务熔断降级;5)最后通过Gateway构建统一网关入口。文中提供了包括Eureka Server配置、Feign接口声明、Ribbon策略设置、Hystrix

#spring cloud#spring#后端
Nacos vs Eureka

Nacos核心工作流程,以及与Eureka的区别

#eureka#云原生#spring cloud
NIO 的 Channel 里有多个 BIO 吗?

NIO的Channel是操作系统内核级的文件描述符,支持非阻塞和双向通信,必须配合Buffer使用,并能注册到Selector实现多路复用。而BIO的Socket是JDK包装的用户态对象,只能单向阻塞通信,不支持多路复用。核心差异在于NIO通过一个Selector线程可管理上万个连接(基于epoll事件驱动),而BIO需要为每个连接创建独立线程。NIO的Channel类型包括FileChannel

#nio#网络#linux
3 大 I/O 模型BIO / NIO / AIO

本文系统解析了三种I/O模型(BIO/NIO/AIO)的核心差异与实现原理:1. 模型本质:BIO(同步阻塞)采用线程挂起等待;NIO(同步非阻塞)通过多路复用实现,包含select/poll轮询和epoll事件驱动两种方式;AIO(异步非阻塞)基于操作系统回调通知。2. NIO核心:采用Selector多路复用器管理Channel通道,通过零拷贝、事件驱动等机制实现单线程处理万级连接,对比传统轮

#spring#java#linux
Feign + Hystrix 实现降级 + 熔断

本文对比分析了Feign整合不同容错组件的实现方案:1. 纯Feign仅支持降级(返回兜底数据),不支持熔断和自动恢复;2. Feign+Hystrix组合实现完整熔断降级机制(含线程隔离和限流),但Hystrix已停止维护;3. 新项目推荐Feign+Sentinel方案,支持流量控制、熔断降级、热点防护等5大功能。文章通过代码示例展示了各方案的配置方式,并指出Sentinel作为SpringC

#hystrix#spring cloud
    共 22 条
  • 1
  • 2
  • 3
  • 请选择