- 博客(8)
- 收藏
- 关注
原创 分布式事务入门3——使用本地消息表+RabbitMQ实现分布式事务
本文介绍了一种基于本地消息表和可靠消息队列的异步事务处理方案。核心思想是将服务间的同步调用改为异步消息交互,通过本地消息表记录事务状态,实现最终一致性。主服务通过定时任务扫描待处理事务,利用多线程池发送消息到RabbitMQ,并更新本地消息状态。被调用服务消费消息并返回处理结果,主服务根据结果更新状态或触发延迟重试机制。该方案适用于高并发场景(如秒杀系统),通过异步处理提升性能,同时保证事务的最终一致性。文中详细展示了Java代码实现,包括本地消息表设计、RabbitMQ配置、多线程处理和消息监听等关键组件
2026-01-21 14:58:05
326
原创 分布式事务入门2——使用seata的TCC模式实现分布式事务
TCC(Try-Confirm-Cancel)是一种分布式事务解决方案,通过将业务操作拆分为try(资源预留)、confirm(确认执行)和cancel(回退)三个阶段实现最终一致性。该模式需要事务协调者管理参与者行为,并处理网络问题导致的消息重发、延迟等问题,可能引发空回滚和资源悬挂问题。较新的SEATA框架已支持空回滚和悬挂防护,但仍需开发者自行实现资源占用、确认和回退逻辑,对业务代码侵入较大。示例展示了基于SEATA的TCC实现,包括配置、接口定义、三阶段方法实现及全局事务调用方式,涉及金额冻结、提交
2026-01-20 15:44:13
390
原创 分布式事务入门1——使用seata的AT模式实现分布式事务
分布式事务是跨多个微服务的业务操作,要求所有服务要么全部成功,要么整体回滚,确保原子性。基于CAP理论,分布式系统需在一致性(C)和可用性(A)间权衡。AT模式采用两阶段提交优化方案:第一阶段提交并记录undo日志,第二阶段由协调者确保完整性,失败时利用undo日志回滚。实现需各服务创建undo_log表,配置Seata客户端并启用AT模式,通过@GlobalTransactional注解标记事务方法。该方案对业务代码侵入小,性能较好,但需注意协调者故障时的人工干预预案。
2026-01-20 15:42:35
357
原创 第三步:将微服务注册到nacos,通过openfeign实现微服务间调用
本文介绍了Nacos和OpenFeign在微服务架构中的应用。Nacos作为服务发现和配置管理平台,支持服务注册、发现及动态配置更新。文章详细演示了在CentOS上通过Docker安装Nacos的步骤,包括启动、状态查看等操作命令。同时讲解了OpenFeign作为声明式HTTP客户端的使用方法,通过注解简化服务间调用。最后通过user-service和order-service的实例,展示了服务注册、发现及通过OpenFeign实现服务调用的完整流程,包括服务异常时的处理情况。整个方案有效简化了微服务架构的
2025-12-30 09:46:30
529
原创 Docker 常用命令大全
docker build --no-cache -t myapp:latest . # 不使用缓存构建。docker-compose up --scale web=3 # 启动3个web服务实例。docker history --no-trunc myapp:1.0 # 显示完整信息。docker-compose config --services # 列出所有服务。docker-compose down --rmi all # 删除所有相关镜像。
2025-12-26 09:39:00
617
原创 第二步:使用docker部署一个spring boot hello world
本文介绍了在CentOS7上安装Docker并部署SpringBoot应用的过程。首先解释了Docker作为企业级部署工具的优势,包括便于扩容、隔离应用、资源利用和环境一致性等。接着详细说明了如何修改yum镜像源配置、安装Docker CE并设置开机自启。然后演示了使用Maven打包SpringBoot应用为可执行jar包,以及如何通过Dockerfile创建包含JDK21的基础镜像和运行SpringBoot应用的自定义镜像。最后通过docker run命令运行容器,实现应用部署并通过浏览器访问验证。整个过
2025-12-26 09:29:57
1114
原创 IDEA的一些常用快捷键
9. 同词修改 Alt+J 修改某个变量名、方法名、常量时,可以多次使用这个快捷键选中当前编辑器中相同名称的调用,再键入新的名称,可一次性将多个值修改为需要的新值。4. 快速搜索 连按两下Shift 非常常用的功能,搜索项目内的文件以及文件内容,在顶部可以切换要查找的类型(类、文件、方法、文本等)5. 切换编辑框(编辑文件) Ctrl+Tab 非常常用的功能,切换编辑的文件,类似windows的Alt+Tab切换当前程序功能。
2025-12-25 13:57:34
189
原创 第一步:基础环境安装与spring boot hello world
本文介绍了SpringBoot开发环境的搭建和第一个HelloWorld程序的创建。对于仅需本地开发的用户,可以跳过虚拟机安装和CentOS系统配置步骤。开发工具建议使用JDK21和IDEA免费版。创建SpringBoot项目时选择Maven管理依赖,通过@RestController和@RequestMapping注解实现简单的REST接口。运行项目后默认使用8080端口,访问localhost:8080/hello即可获得响应。文章详细说明了核心注解的作用和常见问题解决方案,帮助开发者快速入门Sprin
2025-12-25 11:19:37
1071
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅