- 博客(885)
- 收藏
- 关注
原创 从零搭一套服务器监控告警:Prometheus + Grafana + 飞书通知
本文介绍如何用 Docker 在单台4核8G机器上搭建完整的监控告警系统:通过Prometheus拉取node-exporter和应用指标,结合Grafana可视化,Alertmanager处理告警,并对接飞书机器人实现消息推送。重点包括配置文件结构、Prometheus采集规则、合理设置告警阈值(如使用MemAvailable而非MemFree)、以及通过Webhook将告警推送到飞书群,全程无需复杂代码,适合快速部署与运维。
2026-09-30 09:43:01
236
原创 Nginx + Let‘s Encrypt 上 HTTPS 完整教程:含 2026 年证书新变化
本文详解在Nginx上配置HTTPS的完整流程,涵盖环境准备、HTTP站点搭建、证书申请与HTTPS配置。重点更新2026年Let's Encrypt新变化:支持160小时(约6.7天)短证书及IP证书,推荐将默认profile设为tlsserver(45天)以应对未来趋势。强调自动续期验证的重要性,并指出“到期前30天告警”已过时,应改用基于剩余比例的监控策略,结合ACME ARI标准实现智能续期。
2026-09-30 09:42:23
305
原创 服务器卡了别慌:60 秒定位瓶颈的完整排查流程
凌晨两点接口延迟从50ms飙升至2000ms,排查核心是分层定位+USE法则。先用uptime、vmstat、iostat、ss -s四命令30秒内锁定瓶颈:负载超核数、I/O等待高、磁盘队列堆积,确认为磁盘I/O饱和。深入iostat发现%util=100%、await=210ms,结合vmstat中b值持续>0,判定为大量进程阻塞在不可中断睡眠(D状态),根源是磁盘写入过载。后续通过iotop定位到具体进程,最终修复由日志轮转引发的磁盘风暴。关键:不盲目重启,用系统指标而非直觉排障。
2026-09-30 09:41:51
216
原创 FastAPI 从零写一个能上生产的 API:完整流程和八个坑
本文以一个完整项目为例,系统讲解 FastAPI 从开发到生产部署的全流程实践:基于 FastAPI + Pydantic v2 + SQLAlchemy async + PostgreSQL 17,通过合理项目结构、配置管理、异步连接池优化、模型与 Schema 分离、依赖注入鉴权及请求链路追踪中间件,解决“能跑”到“能上生产”的关键问题,确保高性能、高可用与可维护性。
2026-09-30 09:41:18
251
原创 一条命令起全套开发环境:Docker Compose 从零到能用的完整教程
本文介绍如何用 Docker Compose v2 搭建高效开发环境:通过 compose.yaml 实现一键部署,利用多阶段构建、watch 自动同步、profiles 分离环境、secrets 安全管理密码,并结合健康检查、日志轮转与优雅停机,彻底告别环境配置痛点。
2026-09-30 09:40:47
161
原创 Claude Code 进阶实战:Subagent、并行 Worktree、Hooks,把 AI 编程效率再翻一倍
本文详解AI编程进阶用法:通过Subagent隔离上下文、Git Worktree实现并行开发、Hooks强制执行规范,构建高效工作流。附可直接使用的配置模板,提升代码质量与协作效率。
2026-09-29 10:38:12
247
原创 结构化输出实战:让大模型稳定返回 JSON(Pydantic + 校验重试 + 函数调用)
AI应用对接后端时,结构化输出是刚需。本文提出三层防线:1. 用Pydantic定义Schema(含Enum、校验),确保输出规范;2. 优先使用Structured Output或Function Calling,模型端约束输出;3. 通过容错解析+错误回灌重试,处理非JSON输出。代码可直接复用,显著提升稳定性。
2026-09-29 10:37:39
208
原创 FastAPI 部署大模型服务:流式输出、限流、队列、Docker 上线全流程(生产级模板)
本文提供一套可直接落地的 FastAPI 模板,解决本地模型跑通到对外服务的生产化难题。基于 FastAPI 的异步、流式响应与数据校验优势,实现大模型 API 的高性能流式输出。涵盖健康检查、请求校验、超时控制、客户端断开监听、Nginx 缓冲关闭等关键细节,并引入令牌桶实现多级限流,确保服务稳定、安全可用。代码即用,适配 Ollama、vLLM 等主流推理引擎。
2026-09-29 10:37:01
470
原创 Dify 实战:从零搭建企业知识库问答 Agent(含工作流编排与私有模型接入)
Dify 作为国内落地率高的 AI 应用平台,可快速验证想法、降低技术门槛,适合非技术人员维护。通过私有部署、接入本地模型(如 vLLM/Ollama)、合理构建知识库(分段、混合检索)与工作流编排,实现高效问答。关键在于:用混合检索提准度、变量命名规范防错误、兜底机制防幻觉。但复杂逻辑与高性能场景需代码补充。最终以“Dify 快速原型 + 代码精细优化”组合拳,实现低成本高效率落地。
2026-09-29 10:36:01
371
原创 大模型微调实战:LoRA / QLoRA 从数据准备到部署上线(单卡 24G 也能跑 7B)
微调新手三大困境:显存不足、数据清洗难、效果难评估。本文提供完整解决方案:先判断是否真需微调(知识用RAG,格式用Prompt,行为模式才微调);推荐QLoRA降低显存至8-12G,支持单卡训练;附可运行脚本、数据清洗代码及超参表,含版本踩坑清单,助力高效落地。
2026-09-29 10:35:08
174
原创 LangGraph 多智能体编排实战:状态机、断点续跑、人工介入,一次讲透
LangGraph 通过将 Agent 流程建模为可审计、可恢复的状态机,解决单 Agent 在复杂任务中的失控问题。相比 LangChain 的组件库定位,LangGraph 提供流程编排能力:节点执行任务、边控制流转、状态共享数据。支持条件分支、断点续跑与人工介入,实现生产级可靠性。典型应用包括审查流水线、多智能体协作(如 Supervisor 模式),并可通过 Checkpoint 持久化状态,确保任务中断后可恢复。代码简洁可运行,是 2026 年生产级 Agent 的首选框架。
2026-09-28 13:47:20
365
原创 CLAUDE.md / AGENTS.md / .cursorrules 怎么写才有效:AI 编程配置文件完全指南(附模板)
本地部署大模型正成趋势,从“今晚就能跑”到“扛生产流量”全链路解析。对比Ollama(易用、适合开发)与vLLM(高并发、生产级),推荐先用Ollama快速验证,再迁移到vLLM。显存计算公式:显存 ≈ 参数量×字节数 + KV Cache,7B-Q4模型约需3.5-4GB显存。实测显示,vLLM在20并发下吞吐为Ollama的3-5倍。附带踩坑指南:避免OOM、配置镜像加速下载、合理设置max-model-len。自部署虽有算力与运维成本,但隐私安全与低延迟优势显著,长期看更划算。
2026-09-28 13:46:38
180
原创 本地大模型部署实战:Ollama 快速上手 + vLLM 生产部署 + 显存账本(2026 版)
本地部署大模型正成趋势,从“今晚就能跑”到“扛生产流量”全链路解析。对比Ollama(易用、适合开发)与vLLM(高并发、生产级),推荐先用Ollama快速验证,再迁移到vLLM。显存计算公式:显存 ≈ 参数量×字节数 + KV Cache,7B-Q4模型约需3.5-4GB显存。实测显示,vLLM在20并发下吞吐为Ollama的3-5倍。附带踩坑指南:避免OOM、配置镜像加速下载、合理设置max-model-len。自部署虽有算力与运维成本,但隐私安全与低延迟优势显著,长期看更划算。
2026-09-28 13:46:06
340
原创 RAG 从零到生产:切块、向量化、重排序、评测,一条链路讲透(附完整代码)
本文系统解析RAG核心链路:从递归切块、嵌入向量检索到重排序与混合检索,重点突破“检索噪声”难题。提供可直接运行的代码,涵盖中文最优模型选型、overlap参数调优、Cross-Encoder重排及BM25融合策略,并强调评测的重要性,实现生产级RAG落地。
2026-09-28 13:45:03
233
原创 MCP 协议从零开发实战:手写 Server + Client,让 Agent 插上「USB」
本文详解MCP(Model Context Protocol)如何成为AI工具生态的“USB接口”,通过5分钟掌握协议核心:用标准JSON-RPC实现跨语言、跨进程的工具调用。手把手构建可运行的MCP Server,提供天气查询与安全读文件功能,并演示接入Claude Desktop/Cursor的配置方法。附带50行极简Client实现,揭示initialize、list_tools、call_tool三步协议时序。文末总结高频踩坑点及进阶方案——让模型自主决策的最小Agent循环仅需30行代码,真正实现
2026-09-28 13:43:43
459
原创 9 月 29 个新模型、输出价差 42 倍:2026 大模型价格战的完整地图与选型表
过去一个月,29个新模型密集发布,价差达42倍。竞争焦点已从“谁最强”转向“每件事花多少钱”。通过分析单任务成本(含输入、输出、缓存、重试等),发现中档模型如Claude Opus 5.5(medium)性价比最优,开满档反而浪费。选型应按场景:高吞吐选GPT-6 Sol,长任务用Anthropic缓存降本,轻量任务优先低价档。警惕尝鲜价、单价陷阱与默认档位差异。未来核心是单位任务成本优化,而非单纯性能比拼。
2026-09-24 13:50:47
256
原创 200 行代码搭一个多模型路由层:让 Opus 5.5、GPT-6 Sol、Luna 按成本自动分流
模型越多,账单越失控。真正问题不在选型,而在“小事用贵模型”。通过路由层按任务类型、输入规模与预算分配模型,实现低成本高效调用。采用规则+预算控制的降级链(如opus→sol→luna),确保简单任务不滥用大模型,同时可观测成本。代码实现实时预算监控与账单追踪,让每一分钱都可算、可管、可优化。
2026-09-24 13:49:46
249
原创 单任务成本降 80% 的真相:Prompt Caching 从 0 到 1(附成本核算脚本)
本轮大模型降价中,标价仅降20%,任务成本却降40%,关键在于缓存优化。缓存读取价格降幅达60%,且通过合理设计prompt(稳定前缀+动态后置),可实现90%以上命中率,单次调用成本降低92.8%。真正降本核心不在模型本身,而在缓存机制与prompt工程的精细化设计。建议优先监控命中率、保持前缀稳定、避免频繁切换档位,并定期清理冗余上下文,实现“零代码”降本。
2026-09-24 13:49:03
187
原创 开源模型的反攻:输出价被打到 $1.2,2026 年自部署的账到底该怎么算
9月模型价格差达42倍,闭源厂商集体降价,主因是开源模型(如DeepSeek、Qwen、小米)在性能与成本上形成挤压。开源已实现“便宜且够用”,自建部署仅在月调用量超百万级时才具经济性。建议采用三层架构:轻量任务用低价API,主力用中档模型,硬骨头才用旗舰,数据合规场景可自建。核心是通过分层降低整体成本,而非等待更低价模型
2026-09-24 13:47:43
287
原创 AI 巨头集体“慢下来“:能力分级、安全门控,2026 年 9 月的三道闸门
9月,AI行业悄然开启“能力分级”新纪元:OpenAI、Google、Anthropic相继设置安全闸门,最强模型能力不再无差别开放。定价下降背后,是资质审核、前置评估与权限管控的收紧。开发者需警惕模型路由变化、默认策略调整及自建模型的安全责任,尤其在安全敏感场景中,能力不再是“买就用”的商品,而是按需分发的资源。
2026-09-24 13:46:54
125
原创 接口“做了幂等“,为什么还是重复扣了两次款
幂等不是“防重复”,而是“重复执行无害”。分布式锁仅解决并发,无法应对重试;幂等键必须是业务唯一标识(如订单号),而非 requestId;避免 check-then-act,用原子操作(如状态机更新)判断;重复请求需返回与首次完全一致的结果。核心:幂等本质是让重复无害,而非阻止重复。
2026-09-23 10:35:32
174
原创 Nginx 的 CPU 只有 30%,为什么它一直在报 502
两台8核16G机器运行Nginx反向代理,因文件描述符(fd)和连接队列瓶颈导致接口RT抖动、偶发502/503。虽CPU仅30%、内存带宽充足,实为worker_connections受ulimit -n限制,且反向代理每请求占2连接,实际并发仅约500。通过检查/proc/$pid/fd数量、ss -lnt队列积压及nstat溢出计数确认瓶颈。调优顺序:先提升系统级ulimit、somaxconn、tcp_max_syn_backlog;再配置Nginx worker_rlimit_nofile、reu
2026-09-23 10:34:19
263
原创 内部服务全换成 gRPC,半年后我们换回了一半
如果今天重新做这个决定,我会直接用Connect。能力gRPCgRPC-WebConnect浏览器原生❌需代理✅二进制小体积✅✅✅可直接 curl❌❌✅(JSON 模式)可 CDN 缓存❌❌✅(无副作用调用可用 GET)错误在 HTTP 状态码里❌❌✅双向流✅❌✅(原生)/ ❌(Web)生态成熟度高维护模式较年轻Connect 的关键优势是它兼容普通 HTTP——浏览器fetch()直接调,后端用 gRPC 二进制调,同一套.proto。
2026-09-23 10:33:35
101
原创 JWT 用错了,比 Session 危险得多
JWT 适用于多服务、跨域验证等场景,但单体应用或需即时吊销的系统不应使用。常见错误包括:payload 明文暴露敏感信息、接受 alg: none、算法混淆、忽略 exp/iss/aud 校验、密钥弱、无法主动失效、kid 被滥用及存储于 localStorage。JWT 的无状态特性导致无法实时注销,若引入黑名单则违背初衷。正确做法是:服务端定算法、校验所有字段、短期 token + HttpOnly Cookie、关键操作查 jti 黑名单。最终建议:单体应用用 Session,别为“无状态”自找麻烦
2026-09-23 10:32:04
232
原创 给 HTML 配了一年强缓存,用户半年看不到新版本
HTML 长缓存导致用户看到旧版页面,根源在于 index.html 被设为一年强缓存,浏览器不再检查更新。正确做法是:HTML 使用 no-cache 协商缓存,静态资源通过哈希文件名实现 max-age=31536000, immutable 强缓存。关键点:no-cache 允许缓存但需验证,no-store 才是真正不存;多机部署避免用 mtime 生成 ETag;CDN 缓存受 Set-Cookie 影响,需排查响应头与缓存键设计。
2026-09-23 10:31:22
199
原创 GPT-6 和 Claude 5.5 同日对轰:谁才是「最强王者」呢
OpenAI与Anthropic同步发布新模型,聚焦“单位任务成本”而非单纯性能。Claude Opus 5.5与GPT-6 Sol/Luna在保持高智能的同时,通过缓存优化、推理效率提升,实现成本腰斩甚至更低。实测显示,中档配置已逼近顶级表现,企业级应用更显性价比。两家同时优化输出可读性,强调“有用信息前置”。未来大模型竞争核心已从“最聪明”转向“最便宜地用起来”,价格战正式打响。
2026-09-23 10:29:55
769
原创 限流阈值拍脑袋定成 1000 QPS,我们挡掉了 27% 的正常请求
去年双十一压测中,因误用固定窗口限流(阈值1000 QPS),虽平均流量仅700,却因秒级尖刺流量与窗口边界问题导致每分钟拒绝4000+请求。暴露四大核心坑:平均值误导、算法错配(令牌桶/漏桶混淆)、INCR+EXPIRE非原子、currentTimeMillis()回拨风险。最终通过引入滑动窗口、Lua原子脚本、nanoTime()及三层递减阈值策略(Nginx→网关→服务)重构限流体系,并建立四条评审标准,实现从“自伤”到“护航”的转变。
2026-09-22 15:40:51
170
原创 Spring 的三级缓存,根本不是为了“解决循环依赖“
Spring 解决循环依赖的核心是三级缓存,而非仅靠二级。二级缓存可打破循环,但无法保证 AOP 代理的正确性;三级缓存存储 ObjectFactory,延迟生成早期引用,确保在注入阶段就能拿到代理对象,避免事务失效等生产问题。构造器注入因无法拆分创建与初始化,无法被缓存机制兜底,报错是设计提醒。真正解法是重构代码,消除循环依赖,而非依赖配置或 @Lazy。
2026-09-22 15:40:04
183
原创 服务器 free 只剩 200MB,为什么它一点事没有
看 available 而非 free,才是判断内存是否紧张的正确指标;监控告警应基于 MemAvailable 计算使用率,避免误报;drop_caches 仅用于压测,生产禁用;真正内存危机以 si/so 持续不为零、Direct Reclaim 或 OOM Killer 为信号。
2026-09-22 15:39:17
156
原创 HTTP/3 上线三个月,我把它关了:QUIC 不是所有场景都更快
HTTP/3 在弱网、跨国及移动场景下显著提升首屏速度与连接稳定性,尤其在4G/3G和网络切换时表现优异,视频起播快30%,秒开率提升12%。但高速网络下吞吐反降,因QUIC依赖用户态处理与缺乏UDP GRO支持,导致CPU消耗高。落地面临UDP丢包、负载均衡不兼容、监控缺失与成本上升等挑战。建议移动端、跨国流量或高频切换场景优先启用,纯PC端或高带宽传输则暂缓。核心原则:按场景灰度上线,非全量替换,以“手术刀”思维精准使用。
2026-09-22 15:38:36
81
原创 单表 2000 万就要分库分表?先说清楚这个数字是怎么来的
2000 万这个数,是"三层 B+ 树"推出来的,不是性能红线。你的行宽、主键、查询模式一变,它就失效了。先做索引、SQL、归档、读写分离。这四件事没做完就分片,是在用架构掩盖问题。分片键要长在查询条件上。为了"均匀"选雪花 ID,是分片里最经典的自杀式操作。分片不是终点,是起点。跨分片分页、JOIN、事务、扩容,这些新问题比原来的问题更难缠。分库分表的真正门槛不在"怎么分",在"什么时候不该分"。
2026-09-22 15:37:41
215
原创 TCP 拥塞控制要换 BBR 吗?我把两边的实测数据翻了一遍
“换BBR就起飞”并非普适真理。BBR通过建模瓶颈带宽与往返时延,实现高吞吐低延迟,尤其在长肥管道、无线链路中表现优异;但混合部署时可能挤压CUBIC流量,深缓冲下反而因过早退让导致公平性下降。其优势依赖队列管理(如fq_codel),而非单纯算法替换。选型应基于场景:跨海/卫星链路、延迟敏感场景可优先BBR;内网或需公平共存则慎用。核心是先优化队列调度,再评估算法——真正关键不是“换不换”,而是“是否治本”。
2026-09-21 11:30:12
104
原创 epoll 已经过时了?2026 年了,说说这个误解有多贵
将 epoll 替换为 io_uring 并未带来显著性能提升,原因在于:只有在高并发(单核超 50k req/s)、开启 SQPOLL 且代码重构为批量提交、零拷贝等设计时,io_uring 才能发挥优势。多数场景下,如网络服务、Go/Node.js 等语言栈,其收益微乎其微甚至为负。真正受益的是磁盘密集型应用(如 PostgreSQL、RocksDB)。此外,内核版本、容器 seccomp 限制、运行时兼容性等问题也制约其落地。结论:先看火焰图,若系统调用不在热路径,优化 I/O 接口是过早优化。epo
2026-09-21 11:29:29
190
原创 Kafka 都 4.x 了,还在用 acks=1 的兄弟,先看看这场 120 万条消息的丢失事故
一次因生产者配置未更新导致的 Kafka 事故:acks=1、retries=0 在 leader 选举中引发 120 万条消息永久丢失,Kafka 无任何报错。根因在于“leader 确认 ≠ 数据安全”。Kafka 4.0 已优化默认值(acks=all、idempotence=true),但显式配置会覆盖新默认值。正确实践需确保:生产者使用 acks=all + 幂等;消费者先处理后提交,逻辑幂等;分区数定型、max.in.flight=5;启用新 rebalance 协议与 ELR。最终,“不丢”依
2026-09-21 11:28:41
334
原创 缓存穿透、击穿、雪崩:背完八股文,你可能还是没解决真问题
本文指出,后端面试常考的“缓存三兄弟”(穿透、击穿、雪崩)仅覆盖读路径问题,而线上事故多源于被忽视的两大核心:写路径一致性与热 key 问题。前者强调“先更新DB再删缓存”的必要性,推荐通过binlog订阅+TTL兜底实现高可靠;后者则需用多级缓存、key打散等手段应对长期热点。作者总结出一份落地检查清单,提醒开发者优先关注真实生产中的写一致性和热点治理,而非仅背诵标准答案。
2026-09-21 11:27:22
331
原创 std::move 根本不移动任何东西——C++ 移动语义的七个反直觉细节
std::move只是类型转换,干活的是移动构造。const对象上用它 = 拷贝,而且不报错。return x别写成,会挡掉 NRVO。移动构造要标noexcept,否则容器扩容会退化成拷贝。引用折叠只有,左值引用有传染性。转发引用会抢拷贝构造的重载,该排除就排除。移动后的对象是"有效但未指定",别读它的内容。移动语义这东西,看一遍标准定义比看十篇博客都有用。它的设计其实很克制:不引入新语法,靠右值引用 + 重载决议 + 引用折叠三个已有机制拼出来。理解了机制,那六个"反直觉"其实都不反直觉。
2026-09-21 11:26:18
284
原创 AI 写代码越来越快,项目却越来越乱?2026 年程序员必须落地的 3 个工程化方法
AI生成代码虽快,但可维护性下降,根源在于缺乏约束。通过建立强制规则文件(如AGENTS.md)、要求AI先输出可审查方案、引入人机协作状态机,可显著降低返工率与Review耗时,提升代码质量。关键在于将“人必须在场”变为机器约束,从源头控制风险。真正竞争力已转向定义问题与设定边界的能力。
2026-09-20 14:26:01
188
原创 30 天从零学 AI 应用开发(Day 1):机器学习 / 深度学习 / 大模型的本质区别 + 本地环境搭建与代码实战
一上来就微调、做 Agent,是学 AI 应用最典型的弯路。先把这三个概念理清,后面的路会短一半。
2026-09-20 14:24:38
187
原创 用 Codex 从零搭一套 AI 短视频流水线:提示词 + 批量脚本 + 真实踩坑
单人日产10-14条短视频,3-6分钟/条,风格稳定不飘。通过Codex+本地工具链实现全流程自动化:固定提示词锚点防风格漂移,Edge-TTS批量配音,FFmpeg标准化合成,脚本批处理一键生成。代码可复制即用,成本极低,适合持续产出高质量短视频内容。
2026-09-20 14:23:48
381
原创 JVM 该选哪个垃圾回收器?JDK 25 时代 G1 / ZGC / Shenandoah / Parallel 怎么挑
JDK 25 下,GC选择已重构:G1成默认,ZGC与Shenandoah正式化,Parallel仍为批处理最优。关键取舍在于延迟、堆大小与内存开销——超大堆低延迟选ZGC,内存敏感选Shenandoah,批处理用Parallel。但真正收益来自代码优化:减少临时对象、清理保留泄漏、合理缓存。参数调优前先开GC日志与JFR,测量为王。换GC不如降分配,性能提升始于源头。
2026-09-18 13:50:23
205
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅