博主头像
Hzqaq的开发日记

全栈开发学习中

java

Guava限流神器:RateLimiter使用指南

1. 引言 可能有些小伙伴听到“限流”这个词就觉得头大,感觉像是一个既复杂又枯燥的话题。别急,今天就要用轻松易懂的方式,带咱们一探RateLimiter的究竟。 想象一下,当你去超市排队结账时,如果收银台开得越多,排队的人就会越少,速度也就越快。但如果超市为了节省成本,只开了一两个收银台,那排队的速度就会大大降低,甚至造成拥堵。在软件世界里,特别是在处理网络请求或资源访问时,也存在类似的问题。这时候,RateLimiter就像是那个调节收银台开放数量的智能系统,它能帮助我们控制资源的访问速率,防止过载。

java

主线程如何得知线程池中多个并行任务的完成并收集它们的结果?

主线程等待多个并行任务完成并收集结果,常见有三种方式: **1) Future 模式** 提交任务时保存 Future 列表,主线程遍历调用 future.get() 阻塞获取结果,可以设置超时时间。缺点是串行等待,如果第一个任务慢,后面的任务结果拿不到。 **2) CompletableFuture** 用 CompletableFuture.allOf(futures).join() 等待所有任务完成,通过 thenApply 收集结果。支持异步回调和异常处理,单个任务失败不影响其他任务。这是目前最推荐的方式。 **3) CountDownLatch 协作** 初始化时设定计数值等于任务数,每个任务完成时调用 countDown(),主线程通过 latch.await() 阻塞等待计数归零。适合需要精确控制执行流程的场景。

java

从零到一:Linux 项目部署与 Jenkins 自动化实战

在软件开发流程中,将项目成功部署到 Linux 服务器并实现高效、可靠的自动化发布,是每一位后端开发者迈向专业的必经之路。 本教程以苍穹外卖项目为案例,系统化演示了从手动部署到基于 Jenkins 自动化上线的全过程,适合刚接触 Linux 运维与持续集成的新手开发者。

nginx

Nginx负载均衡配置

负载均衡就是当我们的服务器接收到的请求太多,压力太大,此时可能导致服务器性能下降或不可用,为了解决这个问题,我们可以搭建多台服务器,将请求分配到多个服务器上进行处理,从而保证服务的可用性,即使有服务器挂掉,服务也能正常运行,通过负载均衡,我们可以动态的增加或减少服务器的数量,增强网站的可扩展性,这样也利于我们更新服务。 而 Nginx 作为一款高性能的 Web 服务器和反向代理服务器,可以通过其负载均衡功能,将接收到的客户端请求,根据配置的负载均衡策略(如轮询、最少连接、IP哈希等)转发给多个后端服务器,从而实现负载均衡。

默认分类

在idea和vsode中集成Claude Code

本文介绍了 Claude Code 的完整安装与配置流程。由于国内访问官方源较慢,推荐使用淘宝 npm 镜像进行安装:npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com,安装前需确保 Node.js 18+ 环境。配置方面,需要在 ~/.claude/settings.json 中设置模型对接信息,本文提供了 Mimo 和 DeepSeek 两个国内大模型的配置示例。配置完成后,在代码目录执行 claude 命令即可开始使用。如果只是在 IDEA 或 VSCode 中使用,可以直接安装 Claude 插件,无需执行命令行步骤,插件会自动引导完成 SDK 安装和模型配置。