- 博客(8)
- 收藏
- 关注
原创 【微服务实战】拒绝硬编码!从 RestTemplate 到 Nacos + OpenFeign 的架构演进与对比
创建 @FeignClient 接口,并在业务层 @Autowired 注入使用(代码参考上文 2.0 版本)。从 RestTemplate 到 Nacos + OpenFeign,不仅仅是代码写法的改变,更是架构思维的跃升。适合简单的、临时的、非集群的第三方接口调用。是微服务架构下的标准答案,它解决了服务治理中最核心的“找人(服务发现)”和“对话(远程调用)”的问题。一旦完成了这一步改造,你的系统就具备了水平扩展的能力,离真正的企业级微服务架构更近了一步!
2025-11-24 14:49:17
331
原创 乐观锁和悲观锁的理解
对比项悲观锁乐观锁并发假设悲观:认为一定会冲突乐观:认为很少会冲突实现手段数据库行锁 / 表锁(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中关于redis在项目中的使用
/ 使用StringRedisSerializer来序列化和反序列化redis的key值。// Hash的key也采用StringRedisSerializer的序列化方式。@EnableCaching // 开启缓存支持。* Redis使用FastJson序列化。// 用于存储泛型类型T的Class对象。// 反序列化方法,将字节数组转换为对象。// 序列化方法,将对象转换为字节数组。
2025-09-27 15:47:28
426
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅