- 博客(786)
- 收藏
- 关注
原创 2025年度汇总,致永远热情的我们。
2025年度复盘:在不确定与焦虑中继续前行,把“普通的一天”当作长期主义的阶段性胜利。内容围绕五条主线展开:其一,坚持输出,全年在CSDN持续写作并进入年度榜单,同时同步修缮并分发至掘金、InfoQ、LinkedIn,完成既定产出目标;其二,坚持运动,累计跑步700+公里、完成12次10公里挑战,体重与有氧能力显著提升,进一步确认健康是生活与成长的底层红利;其三,时间胶囊,用更长周期记录日常,获得可回溯的自我证据;其四,坚持阅读,年末集中补课完成年度阅读时长;其五,生活扩展,游戏、3D打印、咖啡与驾照
2025-12-29 18:16:04
744
6
原创 Ollama 本地部署实战 | 3 分钟安装 & 多卡GPU部署 & 运行实战 【2025版】
Ollama 是一个轻量级、本地化的大语言模型(LLM)运行平台,专为开发者快速部署和运行模型设计。它支持 GPU 加速、多卡并行,本文从工程视角拆解 Ollama 本地部署:一键安装、模型目录持久化、`/api/generate` 调用示例;给出多 GPU 的环境变量模板与“nvidia-smi × 请求日志”的三步验证方法。明确预期:多卡更像“容量/并发稳定器”,单次推理提速有限。附命令清单与常见故障速查。
2025-04-23 09:53:34
2892
20
原创 Java-01 深入浅出 MyBatis - MyBatis 概念 ORM映射关系 常见ORM 详细发展历史
MyBatis 是一款优秀的 基于 ORM 的半自动轻量级持久层框架,它支持定制化的 SQL、存储过程以及高级映射,MyBatis 避免了几乎所有 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库记录。
2024-11-15 09:30:50
3705
11
原创 大数据-02-Hadoop集群 XML core-site.xml hdfs-site.xml HDFS Yarn MapRedece
HDFS(Hadoop Distributed File System)是Hadoop框架中专为大数据存储设计的分布式文件系统,具备高容错和高扩展能力。系统采用NameNode与DataNode的主从架构,支持文件分块存储与多副本机制,适合批处理和一次写入多次读取场景。HDFS集群部署涉及对core-site.xml、hdfs-site.xml等配置文件的设置,并需完成NameNode、SecondaryNameNode和DataNode节点配置。
2024-06-28 09:37:28
6338
8
原创 Java-218 RocketMQ Java API 实战:同步/异步 Producer 与 Pull/Push Consumer
同步 Producer(DefaultMQProducer)、异步 Producer(SendCallback + CountDownLatch)、Pull 消费(DefaultLitePullConsumer.poll)与 Push 消费(DefaultMQPushConsumer + MessageListenerConcurrently)。重点解释 Producer Group/Consumer Group 的语义差异、NameServer 路由机制(Topic -> Broker 路由后再直连
2025-12-29 11:30:08
1073
5
原创 Java-217 RocketMQ 术语与消息模型速查:Producer/Broker/Consumer、Group、顺序/广播/集群、Tag/Queue
Producer(生产者)、Broker(消息存储与转发)、Consumer(消费者)构成基本链路;在消费侧区分 PushConsumer/PullConsumer(消费触发与拉取控制方式),并用 Consumer Group 实现负载均衡与容错;消息分发模型覆盖集群消费(Clustering)与广播消费(Broadcasting),对“同一条消息被谁消费、消费几次”给出清晰边界;顺序消息部分区分普通顺序与严格顺序,强调路由到同一队列与异常场景下可能乱序的原因;存储与路由以 Message Queue
2025-12-29 10:52:45
630
原创 Java-216 RocketMQ 4.5.1 在 JDK9+ 从0到1全流程启动踩坑全解:脚本兼容修复(GC 参数/CLASSPATH/ext.dirs)
2025 年仍高频出现的 JDK9+ 兼容问题:启动脚本携带 CMS/ParNew 等已移除的 JVM 参数导致直接报错退出;旧式 GC 日志参数(-Xloggc、PrintGCDateStamps 等)在 JDK9+ 进入统一日志体系(-Xlog)后出现告警/失效;以及 tools.sh / runserver.sh / runbroker.sh 的 CLASSPATH 未包含 ${BASE_DIR}/lib/* 引发 ClassNotFound。文中给出三处脚本的工程化改法:删除 UseConcMark
2025-12-26 15:29:15
1054
2
原创 Java-215 RocketMQ 消费模式:Push vs Pull 的本质、长轮询机制与 Offset/积压调优要
说明 Push 模式“看起来推送、实际长轮询拉取”的实现路径,Pull 模式如何由客户端掌控拉取频率、批量大小与 Offset 提交;并结合 NameServer、Broker、Topic、Producer、Consumer 的集群工作流程,给出“实时性、服务端压力、客户端控制度、异常重试与消费进度管理”的对比框架。重点覆盖关键词:RocketMQ 消费模式、长轮询、PullRequest、MessageListener、pull/pullBlockIfNotFound、offset 管理、rebalanc
2025-12-26 10:23:21
885
17
原创 Java-214 RocketMQ 核心特性全解:顺序/过滤/事务/定时/重试/流控/死信队列
发布订阅与 Tag 过滤/属性过滤、顺序消息(订单链路按发送顺序消费)、消息可靠性与刷盘/主从复制边界、至少一次(At Least Once)投递语义、回溯消费(按时间戳重置位点并要求业务幂等)、事务消息(半消息 PREPARED + 本地事务 + 回查机制实现最终一致性)、定时/延迟消息(MessageDelayLevel 与 SCHEDULE_TOPIC_XXXX 调度写回真实 Topic)、消费失败重试与死信队列(%DLQ%+消费组)、生产者/消费者流量控制触发条件与影响。重点给出工程视角的可落地点
2025-12-25 09:50:07
928
6
原创 Java-213 RocketMQ(MetaQ)演进与核心架构:NameServer/Broker/Producer/Consumer 工作机制
从 MetaQ(Metamorphosis)到 RocketMQ 的演进脉络,并围绕核心组件 NameServer、Broker(主从/复制/刷盘)、Producer、Consumer(拉取/长轮询/消费者组)解释路由发现、Broker 注册心跳、Topic/MessageQueue 分区与负载均衡机制。结合解耦、流量削峰、数据分发等典型场景,给出发送链路的路由缓存与失败重试、消费链路的 offset 管理与积压判断(从 Master/Slave 读的策略考量)等关键点。文中出现的吞吐/延迟等指标需以具体版
2025-12-25 09:35:24
781
原创 Java-212 RabbitMQ 消息可靠性进阶:Publisher Confirms、mandatory Return、持久化与幂等落地
生产端异常捕获与重试、AMQP/RabbitMQ 事务机制取舍、Publisher Confirms(Basic.Ack/Basic.Nack)三种用法(同步阻塞 / 批量确认 / 异步回调精准定位)、mandatory + ReturnListener/ReturnCallback 解决路由不到队列的静默丢弃问题,以及 Exchange/Queue durable 与消息 deliveryMode=2 的持久化策略。并补充消费者 ACK、限流与业务幂等在最终一致性链路中的位置。示例基于 RabbitMQ
2025-12-24 09:17:01
1384
4
原创 Java-211 Spring Boot 2.4.1 整合 RabbitMQ 实战:DirectExchange + @RabbitListener 全流程
通过 RabbitConfig 在启动时声明 RabbitMQ 拓扑(Queue、DirectExchange、Binding,routingKey 精确匹配),再用 AmqpTemplate#convertAndSend(exchange, routingKey, msg) 完成消息投递,最后使用 @RabbitListener(queues=...) 实现消费者监听与自动消费。配置层面给出 application.yml 的连接参数(host/port/username/password/vhost)
2025-12-24 08:34:41
1300
原创 Java-210 Spring AMQP 整合 RabbitMQ:JavaConfig 注解配置、RabbitTemplate 发送/同步接收与坑位速查
Spring AMQP(Spring Rabbit)整合 RabbitMQ 的工程化最小闭环:通过 JavaConfig/注解方式声明 CachingConnectionFactory、RabbitAdmin(AmqpAdmin)、RabbitTemplate(AmqpTemplate)与 Queue Bean,实现默认交换机(amq.default)按 routingKey=队列名的直投发送,以及 receiveAndConvert 的同步拉取验证链路。重点覆盖 ConnectionFactory 包名易
2025-12-23 11:11:13
2156
11
原创 Java-209 Spring AMQP 整合 RabbitMQ 实战:XML 配置直连交换机、RabbitAdmin 自动声明与收发闭环
通过 XML(spring-rabbit.xsd)配置 connection-factory、RabbitTemplate(AmqpTemplate)、RabbitAdmin,并声明 Queue、DirectExchange 与 Binding,实现“启动容器→自动声明资源→发送消息→同步拉取消息”的闭环。重点澄清 RabbitTemplate 的默认交换机(amq.default)路由规则:当调用 convertAndSend(routingKey, msg) 时 routingKey 必须等于队列名
2025-12-23 10:59:14
1521
1
原创 Java-208 RabbitMQ Topic 主题交换器详解:routingKey/bindingKey 通配符与 Java 示例
消息携带 routingKey(dotted-word,长度≤255字节),队列用 bindingKey 绑定到交换器;* 匹配“恰好1个词”,# 匹配“0到多个词”,通配符必须作为独立词出现。结合日志分发与多维分类案例,说明 cron.error、kern.*、*.critical 等绑定如何命中,以及未命中为何会被丢弃。代码层面提供 Java(RabbitMQ Java Client / amqp-client)发布端 basicPublish(exchange, routingKey, ...) 与消
2025-12-22 09:31:54
1142
原创 Java-207 RabbitMQ Direct 交换器路由:RoutingKey 精确匹配、队列多绑定与日志分流实战
routingKey 与 bindingKey 的精确匹配机制,并用日志分流场景给出可直接复用的 Java(amqp-client)示例:生产者向 direct_logs 按 severity(info/warn/error)发布消息,消费者通过 queueBind 绑定一个或多个 bindingKey 实现选择性消费。内容覆盖 direct 与 fanout 的边界、队列多重绑定导致“一条消息进多队列”的行为,以及 demo 中匿名临时队列、autoAck=true 的可靠性含义。适合 2025 年
2025-12-20 11:48:27
1139
4
原创 Java-206 RabbitMQ 发布订阅(fanout)Java 实战:推/拉模式、ACK 与绑定排错全梳理
发布订阅(Publish/Subscribe)模型,使用 fanout exchange 实现“广播式”消息分发:生产者通过 exchangeDeclare 创建广播交换机 logs,消费者启动时创建临时队列并 queueBind 绑定到交换机,实现多订阅者各收一份。并对比推模式(basicConsume + DeliverCallback/DefaultConsumer)与拉模式(basicGet)在实时性、吞吐、资源控制与批处理上的取舍,指出 autoAck 可能导致异常场景丢消息,应结合业务选择手动
2025-12-20 10:59:36
788
原创 Java-205 RabbitMQ 工作模式实战:Work Queue 负载均衡 + fanout 发布订阅(手动ACK/QoS/临时队列)
Work Queue 通过同一队列启动多个消费者实现负载均衡,配合 manual ack(basicAck/basicNack) 与 basicQos(prefetch=1) 避免消息“瞬间堆给某个消费者”,提升公平分发与失败可重试能力。发布订阅基于 fanout exchange 广播机制:生产者发到 Exchange,RabbitMQ 将消息复制到所有绑定队列;消费者常用 临时队列(exclusive/auto-delete) 订阅日志/事件流。文中同时说明 未命名交换器(default exchang
2025-12-19 10:52:22
1761
2
原创 Java-204 RabbitMQ Connection/Channel 工作流程:AMQP 发布消费、抓包帧结构与常见坑
AMQP Channel,实现多路复用、资源隔离与更低的连接开销。围绕 Java 客户端常用 API(channel.exchangeDeclare、queueDeclare、basicPublish、basicConsume)解释其与 AMQP 命令(Exchange.Declare、Queue.Declare、Basic.Publish、Basic.Consume)的对应关系,并给出“高并发/高吞吐”下从单 Connection 多 Channel 过渡到多 Connection 分流的配置思路。
2025-12-19 09:31:50
1002
原创 Java-203 RabbitMQ 生产者/消费者工作流程拆解:Connection/Channel、默认交换器、ACK
“生产者→交换器→队列→消费者→ACK”全流程做工程化拆解,覆盖 Connection/Channel 复用、Exchange/Queue 声明、BindingKey/RoutingKey 路由、mandatory 回退、手动 ACK 与 QoS(prefetch) 的实操要点,并结合 Java com.rabbitmq:amqp-client 的 Hello World 示例解释“未显式指定 Exchange 时使用默认交换器 ""”的行为:队列会自动绑定到默认交换器,路由键等于队列名即可投递
2025-12-18 11:06:44
1944
15
原创 Java-202 RabbitMQ 生产安装与容器快速启动:Erlang 兼容、RPM 部署与常用命令
RPM 做生产部署,以及使用 Docker Compose 拉起 rabbitmq:3.8.x-management 作为学习环境。重点覆盖 Erlang 运行时(Erlang/OTP 23.x)与 RabbitMQ 3.8/3.9 等版本兼容性检查、依赖包(socat、openssl、logrotate)准备、rabbitmq_management 插件启用、systemctl 启停与开机自启、rabbitmqctl 用户/权限/标签管理(administrator、monitoring、policyma
2025-12-18 08:44:35
904
原创 Java-201 RabbitMQ 消息落盘与队列索引详解:.idx/.rdq、msg_store、GC 与 queue_index_embed_msgs_below
持久化消息与非持久化消息的落盘策略,队列索引 rabbit_queue_index(.idx 段文件、segment_entry_count、索引驻留内存成本),以及 rabbit_msg_store(msg_store_persistent / msg_store_transient)的 .rdq 追加写、file_size_limit、ETS 位置映射。重点解释 queue_index_embed_msgs_below 如何决定“小消息进索引/大消息进 store”,以及垃圾回收(garbage
2025-12-17 09:42:43
1276
2
原创 Java-200 RabbitMQ 架构与 Exchange 路由:fanout/direct/topic/headers
Exchange → Binding → Queue → Consumer 的链路讲清消息如何被投递与为什么会“投递不到”。重点拆解四类交换器:fanout(广播)、direct(精确路由键匹配)、topic(通配符 * / # 的多段路由)、headers(基于消息头的多条件匹配),并给出工程侧高频踩坑与定位手法:路由键不匹配导致丢消息、未绑定队列导致无消费、广播导致消息倍增与吞吐下降、headers 规则复杂导致 CPU 压力。版本层面补齐 2025 的关键变化:经典镜像队列(Classic Mirro
2025-12-17 09:22:48
1344
原创 Java-199 JMS Queue/Topic 集群下如何避免重复消费:ActiveMQ 虚拟主题与交付语义梳理
Topic 广播带来的重复消费。先梳理两种模式的消费者语义差异,再把交付方式 NON_PERSISTENT 与 PERSISTENT(默认/可靠性/吞吐权衡)串起来,说明“丢消息、重复投递、堆积、DLQ”常见现象如何与 ACK/重试策略对应。重点给出 ActiveMQ Virtual Topic 的工程化解法:生产者发 VirtualTopic.*,消费者以 Consumer.<Group>.VirtualTopic.* 队列方式实现组内抢占、组间全量;同时对照 JMS 2.0 / Jakarta Mess
2025-12-16 13:02:42
745
原创 Java-198 RabbitMQ JMS 模式详解:Queue/Topic、6 类消息与对象模型(JMS 2.0 / Jakarta Messaging 3.1)
JMS(Java Message Service)模式,工程化梳理 Queue 点对点与 Topic 发布订阅两种模型、JMS 消息头/属性/消息体与 6 类消息(Text/Object/Map/Bytes/Stream/Message),并按对象模型串起 ConnectionFactory、Connection、Destination、Session、MessageProducer、MessageConsumer 的职责与使用顺序。重点落在 Session 的单线程语义、事务与消息确认(ACK)对“重复消
2025-12-16 12:06:37
1163
原创 Java-197 消息队列应用场景:缓存预热+限流排队+Redis Lua 扣库存+MQ 削峰填谷
“削峰填谷、最终一致性、限流排队、缓存预热、静态化、库存扣减、异步落库、服务隔离与降级”。写路径建议采用 Redis + Lua 脚本做原子预扣库存(防超卖),再通过消息队列(Kafka/RabbitMQ/RocketMQ)把下单、扣库存、支付准备等拆成异步链路,实现快速响应与后端平滑消费;读路径采用多级缓存(CDN/本地缓存/Redis)配合 Cache Aside/定时刷新等策略。示例代码以 Kafka Producer/Consumer 与 Redis Lua 展示关键点;版本以 Spring Boo
2025-12-15 08:57:28
1354
7
原创 Java-196 消息队列选型:RabbitMQ vs RocketMQ vs Kafka
“开源消息队列、可靠性、事务一致性、集群高可用、吞吐与延迟、生态集成、运维复杂度”建立可落地决策框架,并对 RabbitMQ、RocketMQ、Kafka 的适配场景给出工程化边界:RabbitMQ 更擅长业务系统异步解耦与路由控制;RocketMQ 更贴近交易类系统的顺序/事务/延时消息需求;Kafka 更适合作为日志与数据管道的事实标准,服务实时计算与大数据生态。本文明确:性能与 TPS/延迟高度依赖硬件、磁盘、网络与参数配置,2025 年落地应以“压测数据 + 故障演练 + 监控告警”作为最终依据
2025-12-14 21:07:49
1205
2
原创 Java-195 RabbitMQ BlockingQueue 手搓“消息中间件”雏形:生产者-消费者模型到企业级 MQ 差在哪
BlockingQueue(以 ArrayBlockingQueue 为例)实现经典生产者-消费者模式,把“消息中间件/MQ”的核心抽象落到可运行 Demo:生产者写入消息、消费者阻塞拉取、队列作为缓冲区完成异步解耦与削峰。随后基于工程视角拆解为何该实现只能作为学习型“自定义消息中间件雏形”:它缺少消息持久化(WAL/磁盘/副本)、投递与消费确认(ACK/NACK)、重试与死信队列、顺序与幂等、水平扩展与分区路由、流控与背压、监控追踪与安全治理等关键能力。对比 RabbitMQ/Kafka/RocketMQ
2025-12-14 20:56:46
999
2
原创 Java-194 RabbitMQ 分布式通信怎么选:SOA/Dubbo、微服务 OpenFeign、同步重试与 MQ 异步可靠性落地
SOA(Dubbo + ZooKeeper 的 RPC 注册发现)、微服务(Spring Cloud OpenFeign 的 HTTP 调用)、以及电商“落库后更新索引/静态页”的同步与异步实现。同步方案强调避免递归死循环与阻塞放大,采用有界重试、退避、超时与熔断;异步方案通过任务缓存/消息队列(Kafka/RabbitMQ)解耦主链路,但必须补齐可靠投递、重复消费幂等、失败补偿与死信/重试策略。文中给出 RPC vs HTTP 的工程化选型条件(频次、延迟、接口规模、跨语言)与落地关注点(消息丢失、防重复
2025-12-12 11:10:54
1111
4
原创 Java-193 Spymemcached 深入解析:线程模型、Sharding 与序列化实践全拆解
Spymemcached 的基本能力,包括文本协议与二进制协议支持、基于 NIO 的异步通信模型、Future 与回调两套 API 形式,以及自动重连和 Failover 能力。随后重点分析线程模型(业务线程与 Selector 线程分工)、任务队列与路由策略,尤其是 arrayMod 与 ketama 一致性哈希 Sharding 机制 在扩容、容错场景下的行为与差异。序列化部分则结合对象二进制存储与 GZip 压缩阈值,说明在高并发读写下的性能与内存权衡。文章面向 2025 年仍在使用 Memcache
2025-12-12 09:25:01
880
原创 Java-192 深入拆解 EVCache 内部原理:Memcached 架构、Slab 分配与 LRU 过期机制全解析
Memcached 实现分布式内存缓存。围绕 2025 年仍广泛使用的 Memcached 1.6.x 及 EVCache 客户端实现,文章首先回顾 Memcached 的 C/S 架构、基于 libevent 的事件驱动模型和多线程特性,解释其在高并发场景下如何通过内存缓存减轻数据库压力。随后,重点解析 Slab Allocation 内存管理机制:Page、Slab Class、Chunk 的划分方式,增长因子带来的内存利用率与碎片权衡,以及如何通过 stats slabs 观测实际占用。
2025-12-11 10:53:25
873
4
原创 Java-191 Netflix EVCache Client 接入 Memcached 实战:安装、配置与踩坑记录
Memcached 的完整实践过程,适用于希望在本地或测试环境体验 EVCache 的 Java 工程师。由于 Netflix 未开源 EVCache Server 部分,文章选择 Memcached 1.6.39 作为后端缓存服务,通过源码编译方式安装,并详细解释 -m、-u、-l、-p、-c、-P 等启动参数的含义和推荐配置,帮助读者正确规划内存、并发连接数和监听地址。在客户端侧,文章给出基于 Maven 的 POM 依赖配置,包括 evcache-client 4.139.0、spymemcached
2025-12-11 10:27:56
1080
原创 Java-190 EVCache入门:Netflix 级分布式缓存架构、性能指标与多区域部署全解析
Java 微服务 / 云原生场景下,如何合理复用它的设计思路。文章先解释 EVCache 名字里 Ephemeral / Volatile 的含义,以及它如何在 Memcached + Spymemcached 之上构建出可线性扩展的分布式缓存集群,再对 Rend 代理、Memcached 内存缓存、基于 RocksDB 的 Mnemonic SSD 引擎进行分层对比,帮助读者理清“内存热点缓存 / SSD 持久缓存 / 代理层”的职责边界。在架构层面,文章重点拆解单节点部署、多可用区(Multi
2025-12-10 09:44:18
678
4
原创 Java-189 Guava Cache 源码剖析:LocalCache、Segment 与 LoadingCache 工作原理全解析
对 LocalCache、Segment、CacheBuilder、LoadingCache 等核心组件做了系统梳理。首先通过体系类图理清 CacheBuilder、CacheLoader、Cache / LoadingCache 与 LocalCache 之间的职责边界:构建在 Builder,数据结构与并发控制在 LocalCache / Segment,自动加载由 LoadingCache+CacheLoader 负责。随后从源码层面对 LocalCache 的 Segment 结构、Referenc
2025-12-10 09:08:20
1498
原创 Java-188 Guava Cache 疑难问题实战:OOM、过期清理、命中率异常和阻塞排查
OOM(内存溢出)、过期是否即时清理、accessQueue/writeQueue 的 LRU 淘汰机制、maximumSize 与 maximumWeight 配置不当导致的命中率异常、以及 CacheLoader/get 使用不当造成的线程阻塞和级联异常,同时拆解了 recordStats 滥用和频繁读取统计值带来的性能回退。文章以 Java 生态为背景,适用于 2025 年常见的 Java 8/11/17 与 Guava Cache 23+ 版本,结合示例代码和监控指标(cache.size
2025-12-09 10:42:21
1492
4
原创 Java-187 Guava Cache 并发参数与 refreshAfterWrite 实战:LoadingCache 动态加载与自定义 LRU 全解析
concurrencyLevel、refreshAfterWrite 与 LoadingCache 动态加载的底层行为,并结合自定义 LinkedHashMap LRU 实现进行横向对比。通过 Segment 分段锁与 segmentFor(hash) 调用路径,读者可以理解 Guava 如何在多线程场景下复用 ConcurrentHashMap 思路实现高并发缓存访问,并在此基础上用 Runtime.getRuntime().availableProcessors() 等方式按 CPU 数量合理设置并发级
2025-12-09 09:54:51
1048
原创 Java-186 Guava Cache 从 ConcurrentHashMap 到 Guava Cache:LocalCache 结构、Segment 分段与回收机制全解析
LocalCache 这一核心类,说明它如何通过 Segment 分段锁、AtomicReferenceArray 表结构以及多条队列(recencyQueue、writeQueue、accessQueue、key/value ReferenceQueue)在并发场景下实现高性能缓存管理。文章对比 ConcurrentHashMap 与 Guava Cache 的根本差异:前者是“存了就一直在”的长期 Map,后者是带生命周期管理的本地缓存,支持基于容量(LRU)、时间(expireAfterAccess/
2025-12-08 11:08:31
1038
8
原创 Java-185 Guava Cache 实战:删除策略、过期机制与常见坑全梳理
梳理了 Guava Cache / LoadingCache 的过期与删除机制,包括基于大小的 LRU+FIFO 淘汰、expireAfterWrite 与 expireAfterAccess 时间过期策略,以及 weakValues 等基于引用的回收方式。通过多段 Java 示例代码(GuavaDemo01/03/04/05),展示缓存初始化、recordStats、removalListener、cleanUp 主动清理的实际效果,并解释“为什么超过过期时间 size 还没变小”这类常见误解。
2025-12-08 10:45:32
800
原创 Java-184 缓存实战:本地缓存 vs 分布式缓存(含 Guava/Redis 7.2)
覆盖本地缓存(Local Cache/Guava Cache 32.x,Java 17)与分布式缓存(Redis 7.2,2025 年)在实战中的取舍、组合与常见坑。结合 Cache Aside、Read/Write Through、Write Behind 等策略,给出数据库减压、临时数据、Session 分离、分布式锁等典型落地方式,并给出建议命中率区间(80%–95%)与常见 QPS 参考(MySQL 单机 2k–4k、Redis 单机 10w 级)。文中对 Guava Cache 的容量/过期/并发
2025-12-03 16:41:09
952
4
原创 Java-183 OSS 上传实战:Java 原生与 Spring Boot 集成
OSS 对象存储上传的完整实战:使用 Java SDK 3.8.0 与 Spring Boot 2.3.2.RELEASE 在 2025 年的环境中,实现本地直传与接口化上传(MultipartFile),并通过 Postman 验证成功。文章聚焦工程可落地:包含 Maven 依赖、application.yml、配置类、Service/Controller 的最小闭环,同时提示生产需补强项:使用 HTTPS endpoint(oss-cn-beijing)、启用 RAM 子账号+STS 临时凭证、在控制台
2025-12-03 16:21:42
887
4
neo4j-community-3.5.17-unix.tar.gz 是 Neo4j 官方发布的 社区版
2025-10-14
Git的基本内容介绍
2024-10-08
大模型对生活和工作的改变
2024-09-28
人工智能时代,程序员如何保持核心竞争力?
2024-09-25
关于#Spark# #Flink#的问题,如何解决?
2024-09-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅