Building, breaking, writing — repeat.
I learn by building, breaking things, and documenting every step.Every project, every failure, every fix becomes a note I write down.


ABOUT ME
Dylan Kwok
后端工程师
具备 Java/Go 双栈开发能力,6 年高并发架构开发经验,深耕直播、IM、IoT 业务,胜任高吞吐服务研发。擅长性能调优与问题攻坚,研读主流框架源码,兼顾技术实现与业务价值。
FEATURED

项目-IM限流-公网流量降低
本文档记录了IM公网流量优化项目,核心目标是在不影响用户体验的前提下降低直播间IM的公网流量成本。主要策略包括:消息下行限流方面,对点赞、弹幕、进场、免费礼物等非关键消息按直播间人数和用户身份进行差异化限流,主播及贵族用户不受限流影响;消息上行限流基于Redis Lua脚本实现滑动窗口机制并配合本地缓存降低Redis压力;消息体精简策略涵盖删除废弃字段、压缩字段名长度、延迟图片域名拼接至客户端、跳转数据改为接口获取等方式;统计数据采用增量推送仅下发变更字段;Gzip压缩将阈值从4K降至1K使流量降低约33%;客户端配合实现退后台断连IM及版本控制兼容。最终通过多维度组合优化实现了公网流量的大幅下降,同时有效保障了付费用户的核心体验。
MORE FEATURED
项目-IM如何保证消息不丢失
IM 消息可靠投递依靠请求、应答、通知三类报文交互。单次私聊完整收发需六个报文,依托超时重传、应答确认机制规避报文丢失问题。通过唯一消息 ID 实现消息去重,同时区分在线与离线消息处理逻辑,以此保障消息不丢失、不重复,群消息可参照私聊流程适配实现。
008-JVM堆外内存泄露排查
出海服务开启设备日志记录功能后,频繁触发 Full GC、非堆内存持续上涨、CPU 小幅升高。排查定位为 Fastjson 每次新建 SerializeConfig,造成频繁类加载、元空间占用持续增长,引发元空间阈值 Full GC。通过复用 SerializeConfig 对象修复问题,同时沉淀字节码类框架使用的性能规避经验。
LATEST WRITINGS
RAG-17-llamaindex RAG引擎-对话引擎
阐述 Chat Engine 作为查询引擎的有状态扩展形态,解决多轮连续对话场景。介绍 BaseChatEngine 统一接口及 AgentChatResponse 返回值结构。详解四种核心对话模式:① simple (纯聊天无检索);② condense_question (先改写问题再查询);③ context (直接检索再聊天);④ condense_plus_context (改写+检索+回答的组合模式)。重点分析 Memory 机制的 token 限额管理与自动裁剪策略。
RAG-16-llamaindex RAG引擎-查询引擎
定义 Query Engine 为 RAG 编排器,负责串联"Query → Retriever → Nodes → Synthesizer → Response"全流程。详解 RetrieverQueryEngine 的 4 步执行过程(接收问题→调用检索器→调用响应生成器→返回 Response),三种构造方式(index.as_query_engine / 指定参数 / 手动组装),以及四大扩展点(替换 Retriever/Synthesizer/增加 Postprocessor/改写 Query)。强调其作为"RAG 执行中枢"的核心价值。
RAG-15-llamaindex 响应生成器
详解 Synthesizer(响应生成器)的 6 种模式:① refine (迭代修正,逐个 Node 滚雪球式细化答案,适合超长上下文但成本高);② compact (紧凑打包,分组后合并局部答案,效率与效果平衡);③ simple_summarize (全部打包一次生成,快速但可能截断信息);④ tree_summarize (分治递归聚合,适合海量上下文);⑤ generation (不携带上下文,纯 LLM 回答);⑥ no_text (仅返回检索节点,不做生成)。每种模式均附 Prompt 设计分析与 Langfuse 链路图。
RAG-14-llamaindex 检索器
定义检索器的核心定位:决定 LLM 能看到什么上下文。介绍统一入口 retrieve() 的模板方法模式,以及各索引类型的检索模式差异:向量索引仅支持语义相似度检索;摘要索引支持 embedding/LLM 两种模式;对象索引依赖底层索引类型;知识图谱支持 5 种检索器(向量/同义词/Cypher/模板/自定义);树索引支持 4 种模式(LLM 遍历/向量遍历/全量叶/全量根);关键词表支持 3 种检索器。
RAG-13-llamaindex 更多索引类型
介绍四种高级索引类型:① 文档摘要索引 (先概括再检索,适合宏观总结);② 对象索引 (将任意 Python 对象序列化后通过向量索引检索);③ 知识图谱索引 (PropertyGraphIndex 将非结构化文本转化为实体-关系三元组);④ 树索引 (层次化结构,叶子节点为原文,父节点为摘要)。每种类型均附原理图示与代码示例。