HandlerMethodArgumentResolver 是 Spring 框架中的一个重要接口,主要用于处理控制器方法参数的解析。在 Spring MVC 中,当一个请求到达控制器方法时,Spring 需要将请求中的数据(如请求参数、请求头、请求体等)转换为控制器方法所需要的参数类型,HandlerMethodAr […]
HandlerMethodArgumentResolver 是 Spring 框架中的一个重要接口,主要用于处理控制器方法参数的解析。在 Spring MVC 中,当一个请求到达控制器方法时,Spring 需要将请求中的数据(如请求参数、请求头、请求体等)转换为控制器方法所需要的参数类型,HandlerMethodAr […]
MDC(Mapped Diagnostic Context,映射诊断上下文)是一种在日志记录中用于传递和管理上下文信息的工具,在Java的日志框架中广泛应用,如Log4j、Logback等。以下是关于MDC的详细介绍: 基本概念 MDC是一个与当前执行线程绑定的上下文对象,它允许开发者在应用程序的不同部分(例如不同的方 […]
动态线程池DynamicTp是一个基于配置中心实现的轻量级动态线程池监控管理工具,可对 Java 线程池进行动态管理和监控。 特性 代码零侵入:所有配置放在配置中心,服务启动时拉取配置生成线程池对象放入 Spring 容器,使用时从容器获取,不影响业务代码。 通知告警:提供配置变更、活性、容量阈值、拒绝触发、任务执行或 […]
在 Spring Boot 应用中实现优雅关闭可以确保应用在停止时能够妥善处理正在进行的任务、释放资源,避免数据丢失和系统异常。以下是几种实现 Spring Boot 应用优雅关闭的方法: 1. 使用 Spring Boot Actuator Spring Boot Actuator 提供了一个 /shutdown 端 […]
原因 SpringCloud Gateway无法找到TandeMacBook-Pro.local对应的IP地址, DNS解析失败.导致启动耗时. 解决方案 查看本机hostname,命令如下: root@TandeMacBook-Pro ~ % hostname TandeMacBook-Pro.local 修改hos […]
短链生成的几种方法 业界实现短链的方式大概是有两种。 1. Hash算法 由长url通过 hash 算法,生成短的url,如果hash冲突,需要解决解决hash冲突。那么这个哈希函数该怎么取呢,相信肯定有很多人说用 MD5,SHA 等算法,其实这样做有点杀鸡用牛刀了,而且既然是加密就意味着性能上会有损失,我们其实不关心 […]
R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。 红黑树的特性: (1)每个节点或者是黑色,或者是红色。 (2)根节点是黑色。 (3)每个叶子节点(NIL)是黑色。 [ […]
本地部署 DeepSeek 模型 1. 环境准备 硬件:确保你的机器有足够的内存和计算资源,因为模型运行需要一定的硬件支持。 软件:安装 Python 3.7 及以上版本,以及相关依赖库,如 PyTorch 等。 2. 下载和部署模型 你可以从官方渠道下载 DeepSeek Coder 模型的权重文件,然后使用开源的推 […]
1. 准备工作 注册并获取 API Key:你需要在 DeepSeek 平台注册账号,并获取 API Key,这是调用 API 的凭证。 创建 Spring Boot 项目:可以使用 Spring Initializr(https://start.spring.io/)创建一个新的 Spring Boot 项目,添加 […]
区别 实现原理 Redis 分布式锁:主要基于 Redis 的原子操作。常见的是使用 SETNX(SET if Not eXists)命令或者 SET 命令的扩展参数(如 NX、EX)来实现。当一个客户端成功设置锁对应的键值时,就表示获取到了锁;释放锁则是删除对应的键。为了防止死锁,通常会给锁设置一个过期时间。 Zoo […]
Paxos 协议是一种分布式系统中用于达成共识的算法,由莱斯利・兰伯特(Leslie Lamport)在 1990 年提出。该协议旨在解决在一个可能出现故障和消息延迟的分布式环境中,多个节点如何就某个值达成一致的问题。以下从基本概念、运行过程、优缺点等方面详细解释 Paxos 协议: 基本概念 角色 提议者(Propo […]
在 Java 虚拟机(JVM)的世界里,垃圾回收器扮演着至关重要的角色,它负责自动管理内存,回收不再使用的对象所占用的内存空间,从而保证应用程序的稳定运行。随着 Java 技术的不断发展,出现了多种垃圾回收器,其中 ZGC 和 G1 备受关注。这两者在功能上有相似之处,但在实现机制、性能表现以及适用场景等方面存在着显著 […]
ZGC 即 Z Garbage Collector,是一款由 Oracle 公司开发的低延迟垃圾收集器。 特点 低延迟:能将垃圾回收导致的应用程序停顿时间控制在亚毫秒级别,通常不超过 10ms,对于对响应速度要求极高的应用,如金融交易系统、实时游戏等非常关键。 可扩展性:能适应不同规模的内存和不同数量的处理器核心,无论 […]
在生产环境中,使用Executors提供的快捷方法(如newFixedThreadPool、newCachedThreadPool等)创建线程池是不推荐的,主要原因如下: 推荐做法 建议在生产环境中使用ThreadPoolExecutor类手动创建线程池,并根据业务需求进行详细配置。例如: 通过这种方式,可以更精确地控 […]
TCP的三次握手 TCP连接的建立时,双方需要经过三次握手,具体过程如下: (1)第一次握手:Client进入SYN_SENT状态,发送一个SYN帧来主动打开传输通道,该帧的SYN标志位被设置为1,同时会带上Client分配好的SN序列号,该SN是根据时间产生的一个随机值,通常情况下每间隔4ms会加1。除此之外,SYN […]
人生自古谁无死?留取丹心照汗青。