自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 【微服务实战】拒绝硬编码!从 RestTemplate 到 Nacos + OpenFeign 的架构演进与对比

创建 @FeignClient 接口,并在业务层 @Autowired 注入使用(代码参考上文 2.0 版本)。从 RestTemplate 到 Nacos + OpenFeign,不仅仅是代码写法的改变,更是架构思维的跃升。适合简单的、临时的、非集群的第三方接口调用。是微服务架构下的标准答案,它解决了服务治理中最核心的“找人(服务发现)”和“对话(远程调用)”的问题。一旦完成了这一步改造,你的系统就具备了水平扩展的能力,离真正的企业级微服务架构更近了一步!

2025-11-24 14:49:17 331

原创 分布式系统最终一致性解决方案

这个项目主要通过实现了一个“订单创建 -> 库存扣减 -> 异步通知订单完成”的业务流程。它最大的亮点在于。

2025-11-22 11:07:04 800 1

原创 乐观锁和悲观锁的理解

对比项悲观锁乐观锁并发假设悲观:认为一定会冲突乐观:认为很少会冲突实现手段数据库行锁 / 表锁(FOR UPDATE)版本号 / 时间戳 + 条件更新(WHERE version =?冲突处理方式冲突时阻塞等待,直到锁释放冲突时更新失败,返回 0 行,由业务选择重试或放弃对性能的影响容易阻塞,长事务,性能偏低多数情况下无锁并发,性能好;冲突多时要重试适用场景冲突频繁、强一致(钱、库存等强约束)冲突不太频繁、读多写少(日志、状态机、重试任务)分布式/多实例。

2025-11-21 15:22:36 896 5

原创 基于 RabbitMQ 的库存锁定与异步通知设计(带消息持久化与重试)

本文通过项目中的订单-库存交互场景,演示了基于RabbitMQ的异步消息处理方案。订单服务通过HTTP同步调用库存服务锁定库存后,库存服务通过RabbitMQ异步通知订单服务更新状态。系统实现了消息幂等控制(通过msgId)、持久化存储、以及重试机制:1)利用延迟队列和死信交换机实现自动重试;2)通过定时任务扫描未成功消息进行补偿发送;3)采用乐观锁保证消息处理的并发安全。关键点包括事务内消息发送、消费者幂等检查、消息状态跟踪等,确保分布式系统最终一致性。

2025-11-21 09:54:52 512 1

原创 Spring Boot、Spring Security、MyBatis 整合实现企业级权限控制的标准模型

文章摘要: 本文分析了基于Spring AOP和注解的权限控制实现方案,聚焦数据隔离与访问控制。系统通过@PreAuthorize注解进行功能权限校验(如'system:user:list'),结合@DataScope注解实现数据权限动态过滤。核心组件包括:1)PermissionService完成权限字符串校验;2)DataScopeAspect切面动态生成SQL条件;3)MyBatis将条件注入查询语句。该方案实现业务与安全逻辑解耦,支持多租户隔离、组织层级管控等场景,具有强制安全、集中维护、自动复用等

2025-09-30 18:15:38 835 1

原创 Spring 缓存抽象(Spring Cache Abstraction)

它本身是一个抽象层,具体的实现是通过配置底层缓存提供者(Caching Provider)来完成的,在您的项目中,这个提供者就是。等注解时,Spring 会在运行时创建一个代理对象,将缓存逻辑(检查、存入、清除)在业务方法执行的。)只关注如何操作数据库,完全不知道 Redis 的存在。等注解,您用声明式的方式定义了缓存策略。Spring 缓存抽象的核心在于它将。开启了这项能力,并配置了。,并解决了数据序列化的问题。,告诉 Spring。

2025-09-29 15:48:59 181

原创 java项目中的framework模块下常见的数据库配置

【代码】java项目中的framework模块下常见的数据库配置。

2025-09-27 16:34:51 168

原创 java项目中framework中关于redis在项目中的使用

/ 使用StringRedisSerializer来序列化和反序列化redis的key值。// Hash的key也采用StringRedisSerializer的序列化方式。@EnableCaching // 开启缓存支持。* Redis使用FastJson序列化。// 用于存储泛型类型T的Class对象。// 反序列化方法,将字节数组转换为对象。// 序列化方法,将对象转换为字节数组。

2025-09-27 15:47:28 426 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除