- 博客(16)
- 收藏
- 关注
原创 MQ基本使用
本文介绍了RabbitMQ消息队列的安装部署与基本使用。首先通过Docker快速部署RabbitMQ服务,并配置管理账户。然后详细说明了RabbitMQ的核心概念:通过声明交换机、队列和绑定关系实现消息路由,演示了基于RoutingKey的消息匹配机制。文章还提供了Java客户端的集成方法,包括SpringBoot配置、消息发送/接收的实现,以及不同类型交换机(Fanout/Direct/Topic)的使用场景。最后介绍了通过Bean和注解两种方式声明队列和交换机,以及消息转换器的配置。
2026-05-07 17:39:36
23
原创 Dubbo使用
摘要:Dubbo框架最新版本将服务提供者和消费者的注解更新为@DubboService和@DubboReference。该框架提供adin管理平台,并支持多种高级配置特性,包括序列化、地址缓存、超时重试、多版本控制、负载均衡、集群容错以及服务降级等功能,为分布式服务调用提供全面的解决方案。
2026-05-05 14:40:37
12
原创 SpringCloud知识点总结
本文摘要:本文系统介绍了分布式系统架构的核心组件与技术实现。首先阐述了架构基础概念,包括单体、集群、分布式架构的区别,以及微服务项目创建方法。重点讲解了Nacos作为注册中心的核心功能,包括服务注册与发现、远程调用、负载均衡的实现方式及其异常处理机制。随后依次介绍了配置中心、OpenFeign、Sentinel、Gateway和Seata等分布式系统关键组件,形成了一个完整的分布式技术栈知识体系,为构建高可用、高性能的分布式系统提供了技术实现方案。
2026-05-03 17:12:00
18
原创 Docker使用
本文介绍了Docker技术的核心应用场景和实战部署方法。首先讲解了MySQL的快速部署与常用命令,接着详细说明Docker基础操作包括数据卷挂载、自定义镜像制作和容器网络配置。最后重点演示了Java后端和前端项目的容器化部署流程,并介绍了使用DockerCompose进行多容器编排管理的解决方案。内容涵盖从基础命令到实际项目部署的完整技术链,适合开发者快速掌握容器化部署的核心技能。
2026-05-02 18:38:13
15
原创 MybatisPlus使用
本文介绍了MyBatis-Plus框架的核心功能与扩展应用。快速入门部分涵盖基本步骤、常用注解和配置;核心功能包括条件构造器、自定义SQL和Service接口;扩展功能重点讲解了代码生成工具、静态工具解决循环依赖问题(通过Db工具类避免服务间相互注入)、逻辑删除实现、枚举处理器(@EnumValue和@JsonValue注解使用)以及JSON处理。最后还提及分页插件的使用方法。全文系统梳理了MyBatis-Plus的关键特性和典型应用场景,特别强调了其在解决循环依赖问题上的独特价值。
2026-05-01 23:35:14
16
原创 BeanUtils与MapStruct:Java对象映射工具的深度对比
BeanUtils = 简单场景的"瑞士军刀"MapStruct= 高性能工程的"精密车床"最佳实践:项目初期用 BeanUtils 快速开发,后期遇到性能问题或维护困难时,重构为 MapStruct。
2026-05-01 23:23:45
33
原创 黑马点评知识点总结
本文主要探讨了基于Redis的用户登录认证和商户查询缓存优化方案。在登录认证方面,分析了Session共享问题,提出使用Redis替代Session存储用户数据,通过Token机制实现分布式环境下的用户认证,并解决了登录状态刷新问题。在缓存优化方面,介绍了缓存更新策略(内存淘汰、超时剔除、主动更新)和三种缓存异常情况的解决方案:缓存穿透(空对象/布隆过滤)、缓存雪崩(随机TTL/集群/限流)和缓存击穿(热点Key重建)。文章还对比了数据库与缓存一致性问题的多种解决方案,推荐采用先操作数据库再删除缓存的策略。
2026-04-26 14:12:03
23
原创 MySQL知识点总结
MySQL知识体系分为基础、进阶和运维三大部分。基础篇涵盖SQL语法、函数、约束、多表查询和事务等核心概念;进阶篇深入讲解存储引擎、索引优化、SQL性能调优、视图/存储过程等高级特性;运维篇聚焦日志管理、主从复制、分库分表等生产环境关键技术。完整的学习路径从基础语法到性能优化再到集群管理,适合不同阶段的MySQL学习者系统掌握数据库开发与运维技能。
2026-04-17 22:35:20
20
原创 为什么Spring Boot用户登录模块要先保存验证码再发送?一个设计细节背后的深思
在Spring Boot的用户登录模块中,验证码的处理顺序虽然微小,却反映了后端开发中对一致性、原子性、用户体验的深刻理解。总结下来,“先保存再发送”保证了存储与发送的一致性,避免用户收到码但后端无记录。简化了并发场景下的状态管理,避免验证码错位。让异常处理变得清晰可控,发送失败时易于回滚。优化了前端交互体验,接口响应迅速,倒计时精准。提升了安全性,防止绕过验证码校验的恶意攻击。生成 → 保存 → 发送。如果你还在使用“先发送后保存”,建议立即重构——这可能是你系统里一颗隐藏的定时炸弹。
2026-03-25 09:39:31
319
原创 消息推送技术探索:轮询、SSE 与 WebSocket 的较量
特性轮询 (Polling)服务器发送事件 (SSE)WebSocket通信方向客户端主动拉取服务器单向推送服务器与客户端双向通信协议基础HTTPHTTP (长连接)独立的 WebSocket 协议实时性低 (延迟取决于间隔)高非常高效率/开销高 (大量无效请求)中 (长连接,文本为主)低(连接后开销小)数据格式任意文本为主(UTF-8)文本与二进制实现复杂度低中高浏览器支持广泛较广泛 (IE 不支持)广泛 (旧浏览器部分支持)适用场景简单、低实时性需求。
2026-03-21 16:55:45
388
1
原创 苍穹外卖知识点总结
本项目(苍穹外卖)是专门为餐饮企业(餐厅、饭店)定制的一款软件产品,包括 系统管理后台 和 小程序端应用 两部分。系统管理后台:主要提供给餐饮企业内部员工使用,可以对餐厅的分类、菜品、套餐、订单、员工等进行管理维护,对餐厅的各类数据进行统计,同时也可进行来单语音播报功能。小程序端:主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单、支付、催单等。nginx反向代理介绍nginx反向代理的好处提高访问速度。
2026-03-21 16:08:04
423
原创 HttpClient vs. OkHttpClient:Java 应用中的 HTTP 客户端选择指南
这是一个历史悠久、功能丰富的 HTTP 客户端库。它属于 Apache HttpComponents 项目的一部分,经历了多个版本的迭代(如 HttpClient 3.x, 4.x)。它提供了对 HTTP 协议非常底层的控制,支持多种认证机制、连接管理、Cookie 管理等,功能非常全面。由 Square 公司开发的现代 HTTP 客户端库。其设计目标是高效、快速且易于使用。
2026-02-11 14:13:27
696
原创 分布式锁:在多节点系统中实现互斥访问的关键技术
为了避免由此引发的数据不一致、重复操作等问题,我们需要一种机制来保证在同一时间,只有一个节点能够执行特定的关键操作——这就是分布式锁的核心目标。无论选择哪种方案,都需要仔细考虑锁的获取、释放、超时、续期、以及网络分区等边界情况,确保锁机制在分布式环境下的可靠性和正确性。性能可能成为瓶颈(尤其是悲观锁),数据库的单点故障会影响锁的可用性(除非数据库本身是分布式高可用的),锁释放需要依赖应用层(如删除记录)可能引入风险。强一致性,锁释放可靠(基于会话),具备公平性(有序节点),原生支持高可用。
2026-02-10 15:24:59
561
原创 SpringBoot文件存储方案选型:阿里云OSS vs Minio深度对比
场景推荐方案关键优势中小型企业项目阿里云OSS免运维+弹性扩展政府/金融机构Minio数据自主可控高并发C端应用OSS+CDN全球加速+流量卸载开发测试环境Minio零成本快速搭建最终建议:对于多数SpringBoot项目,可采取开发环境用Minio + 生产环境用OSS的混合方案,兼顾效率与成本。
2026-02-07 14:52:36
452
原创 MyBatis-Plus元数据处理器 vs AOP:如何优雅填充公共字段?
这些字段通常需要在插入或更新数据时自动填充,避免重复编码。定义一个包含公共字段的抽象基类,其他实体类通过继承自动获得这些字段。根据团队技术栈和项目规模合理决策,才能优雅地解决公共字段填充问题。在开发企业级应用时,我们经常需要为数据库实体添加公共字段,例如。这两种方案各有优劣,本文将结合场景分析其适用性,并给出实践建议。事件,动态注入公共字段值。
2026-02-06 14:47:49
377
原创 用户注册系统中的重复用户处理策略
在构建用户注册系统时,处理重复用户是一个常见且关键的问题。或。这两种方法各有优劣,选择哪种取决于具体场景,如性能需求、用户体验优先级和系统架构。本文将详细分析这两种策略,帮助您做出明智决策。
2026-02-05 14:27:23
389
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅