<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[大模型大数据攻城狮的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/linweidong</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; linweidong]]></copyright><item><title><![CDATA[Spark 小文件治理实战：从成因量化到合并策略与效果验证]]></title><link>https://blog.csdn.net/linweidong/article/details/169269705</link><guid>https://blog.csdn.net/linweidong/article/details/169269705</guid><author>linweidong</author><pubDate>Wed, 28 Oct 2026 06:45:39 +0800</pubDate><description><![CDATA[很多团队把小文件当成一个玄学问题，出了问题就怪"HDFS 不行"“Spark 不行”。我当年也这么想过，直到我们把一张表的写入链路从头到尾埋点统计了一遍，才发现小文件的数量是可以精确算出来的，而且误差在 5% 以内。核心公式其实很简单：
这个公式我后面会反复用到。它告诉我们一件事：只要你能控制"task 数"和"分区数"两个变量，你就能预测文件数。反过来，小文件失控，一定是这两个变量里至少有一个失控了。下面我把三个最常见的失控来源一个一个拆开，每个都给实测。我们最初定位问题，是从一个最不起眼的 Spark ]]></description><category></category></item><item><title><![CDATA[DMA 用了总出错？从配置到缓存一致性避坑]]></title><link>https://blog.csdn.net/linweidong/article/details/168346327</link><guid>https://blog.csdn.net/linweidong/article/details/168346327</guid><author>linweidong</author><pubDate>Mon, 26 Oct 2026 06:23:28 +0800</pubDate><description><![CDATA[我把这份清单贴在工位上，每次新写一个 DMA 通道就过一遍。它不是最佳实践的集合，是十五条我用故障换来的检查项。检查项判据1选对 DMA 控制器了吗？MDMA / DMA1 / DMA2 / BDMA，能访问目标内存吗？2RCC 时钟开了吗？DMA 时钟 + DMAMUX 时钟 + 外设时钟，三者都要3缓冲区在哪里？不能是栈（DTCM），不能超出该 DMA 的可访问域4缓冲区对齐了吗？]]></description><category></category></item><item><title><![CDATA[Flink 端到端 Exactly-Once 落地指南：从 Source 位点到 Sink 提交的全链路一致性]]></title><link>https://blog.csdn.net/linweidong/article/details/169069039</link><guid>https://blog.csdn.net/linweidong/article/details/169069039</guid><author>linweidong</author><pubDate>Mon, 26 Oct 2026 06:21:59 +0800</pubDate><description><![CDATA[内置 KafkaSink 覆盖了大多数场景，但总有对接内部系统的需求。我接过一个需求：结果要写进内部的一套 KV 存储，存储方提供了 begin/commit/rollback 三个 HTTP 接口，按批提交，批维度是一个事务。这就必须自己写 2PC。基于的实现骨架（1.x 经典 API；@Override// 恢复时，上次遗留的悬挂事务由基类调用 recoverAndAbort 清理@Override/** 把缓冲区写入当前事务（不提交） */return;]]></description><category></category></item><item><title><![CDATA[Flink CDC 实战：MySQL 数据秒级进实时数仓的完整工程链路]]></title><link>https://blog.csdn.net/linweidong/article/details/169069412</link><guid>https://blog.csdn.net/linweidong/article/details/169069412</guid><author>linweidong</author><pubDate>Sun, 25 Oct 2026 22:40:24 +0800</pubDate><description><![CDATA[有些业务字段 CDC 默认解析不对，比如用JSON类型存的字段、或者GEOMETRY空间类型。这时候要写自定义反序列化器，把 binlog 里的原始值转成你要的格式。下面是个处理JSON// CustomJsonDeserialization.java —— 把 binlog 里的 JSON 字段解析为 Flink Map 类型@Override// 拿到原始 JSON 字符串列if (raw!= null) {// 转成 GenericMap 塞回 RowData。]]></description><category></category></item><item><title><![CDATA[储能电站 SCADA 数据采集：IEC 61850 MMS、GOOSE、SV 三大协议深度对比与工程实现方案]]></title><link>https://blog.csdn.net/linweidong/article/details/168731418</link><guid>https://blog.csdn.net/linweidong/article/details/168731418</guid><author>linweidong</author><pubDate>Thu, 22 Oct 2026 08:43:12 +0800</pubDate><description><![CDATA[针对储能电站的 SCADA 数据采集软件开发，首先需要建立一个关键认知：MMS、GOOSE、SV 并不是三种可以互相替代的数据采集协议，而是分别服务于设备监控与控制、快速事件传递、连续采样值传输的三种通信机制。MMS：解决“设备现在是什么状态、发生过什么事件、能否执行控制命令”的问题。GOOSE：解决“某个保护或控制状态发生变化时，如何快速通知其他设备”的问题。SV（Sampled Values，采样值）：解决“如何连续、快速地传输电流和电压等原始采样数据”的问题。]]></description><category></category></item><item><title><![CDATA[mbedTLS 移植实战：给设备加把安全锁]]></title><link>https://blog.csdn.net/linweidong/article/details/168343164</link><guid>https://blog.csdn.net/linweidong/article/details/168343164</guid><author>linweidong</author><pubDate>Mon, 19 Oct 2026 07:01:48 +0800</pubDate><description><![CDATA[移植完成不等于安全落地。项目建议说明认证模式只允许OPTIONAL是中间人直通车；4.0 已基本 ban 掉，别跟版本较劲主机名校验必须漏一个等于名字校验裸奔，第 10.4 节扩展主密钥保持开启防重协商攻击的基线，3.x 默认开，别关重协商关历史安全问题多发区；换密钥宁可重连加会话恢复私钥存储Flash 读保护起步，TrustZone/安全单元最好明文私钥等于没双向认证；RDP 二级是及格线证书寿命公开信任服务器证书 ≤398 天，自有 PKI ≤2 年。]]></description><category></category></item><item><title><![CDATA[RTC 走偏、时间跳变？嵌入式时间管理的工程避坑]]></title><link>https://blog.csdn.net/linweidong/article/details/168248328</link><guid>https://blog.csdn.net/linweidong/article/details/168248328</guid><author>linweidong</author><pubDate>Sat, 17 Oct 2026 19:51:29 +0800</pubDate><description><![CDATA[如果想在掉电前优雅地做点事——flush 文件系统、保存运行状态、记一笔日志——靠的是 PVD（可编程电压检测）或掉电检测（BOD）。STM32 的 PVD 可以设阈值（比如 2.5 V），VDD 跌破阈值时产生中断或事件。问题是时间窗口。假设系统 3.3 V 供电、VBAT 稳压器在 VDD 低于 2 V 时才接管，从 PVD 触发（比如 2.9 V）到 VDD 彻底不可用，中间的时间取决于电源架构和负载电流，工业上常见的是几毫秒到几十毫秒。这点时间够干什么？保存几百字节到备份寄存器：够。]]></description><category></category></item><item><title><![CDATA[Redis 集群故障排查与修复实战：从 Connection refused 到内存打满的七个现场]]></title><link>https://blog.csdn.net/linweidong/article/details/167586126</link><guid>https://blog.csdn.net/linweidong/article/details/167586126</guid><author>linweidong</author><pubDate>Sun, 11 Oct 2026 16:20:39 +0800</pubDate><description><![CDATA[上个月我们生产环境的认证服务 cluster-app 在凌晨两点突然大面积报 Redis 连接错误。告警把我吵醒时，我第一反应是网络抖动，毕竟那段时间机房刚做过割接。但翻了眼监控就排除了——报错是，不是timeout，说明 TCP 握手阶段就被拒，不是链路慢。报错的 IP 是，可我翻遍 docker-compose 和，种子节点只写了和。这个压根没在任何配置里。我当时愣了一下，以为配置被谁改过，git blame了一番，没有。]]></description><category></category></item><item><title><![CDATA[一次根文件系统只读引发的 Docker 全链路级联故障：从 /dev/mapper 到 containerd 插件的完整排查手记]]></title><link>https://blog.csdn.net/linweidong/article/details/166946260</link><guid>https://blog.csdn.net/linweidong/article/details/166946260</guid><author>linweidong</author><pubDate>Thu, 01 Oct 2026 15:08:58 +0800</pubDate><description><![CDATA[生产环境的故障修复，不能只满足于 “现在好了”。你必须确认：下次重启服务器，它还能正常起来。尤其是这种和启动配置相关的故障，一定要做一次重启验证。不然你这次手动修好了，下次服务器重启，业务又挂了，那还是你的问题。所以在确认所有服务都正常、业务恢复之后，我安排了一次重启验证。findmnt /，确认是 rw；/data，确认是 rw；，确认 active；，确认关键插件都加载；，确认 active；，确认正常；，确认没有新增的严重错误。全部检查通过，才算真正的修复完成。]]></description><category></category></item><item><title><![CDATA[C++后端全场景提示词大全(一位老后端用十一年、三十万行生产代码换来的 AI 协作手册)]]></title><link>https://blog.csdn.net/linweidong/article/details/166014944</link><guid>https://blog.csdn.net/linweidong/article/details/166014944</guid><author>linweidong</author><pubDate>Sun, 20 Sep 2026 09:02:26 +0800</pubDate><description><![CDATA[四道 Java 根本不存在的鸿沟。]]></description><category></category></item><item><title><![CDATA[我把5年踩过的大数据开发的坑，写成了 48 个提示词模板]]></title><link>https://blog.csdn.net/linweidong/article/details/165245147</link><guid>https://blog.csdn.net/linweidong/article/details/165245147</guid><author>linweidong</author><pubDate>Mon, 14 Sep 2026 06:46:54 +0800</pubDate><description><![CDATA[适用情境：建指标体系、指标平台、或者发现多个部门对同一个词有不同理解时。这是我的压箱底模板之一。请帮我建立/治理下面的指标体系。【业务域】{如：交易域}【现有指标清单】{粘贴现有指标定义，或指标平台导出}【第一步 · 指标拆解】按"原子指标 + 修饰词 + 时间周期"的标准结构，把每个指标拆开：| 指标名 | 原子指标 | 业务限定（修饰词）| 时间周期 | 统计粒度 | 计算公式 | 数据来源 |原子指标定义规则：- 原子指标 = 业务动作 + 度量，如"支付金额"]]></description><category></category></item><item><title><![CDATA[分享最近2年积累的嵌入式全场景提示词大全]]></title><link>https://blog.csdn.net/linweidong/article/details/165244221</link><guid>https://blog.csdn.net/linweidong/article/details/165244221</guid><author>linweidong</author><pubDate>Mon, 14 Sep 2026 06:42:22 +0800</pubDate><description><![CDATA[裸机和 RTOS 是嵌入式的基本盘，也是 AI 最容易"想当然"的地方。它习惯写高级语言的并发模型，你却要的是"一个超级循环"或"几个任务 + 队列 + 信号量"。适用情境：你拿到一段口语化的功能描述（比如"上电先自检，绿灯闪，等按键，按下后采集温湿度，超阈值报警"），想让 AI 先帮你理清状态流转，再写代码。别直接让它写，先让它出状态机。提示词模板（可直接复制）：
调整技巧：裸机项目最怕 AI 把"轮询"和"中断"搞混。模板里第 2 条强制它区分三类执行位置，这能拦掉一大半坑。如果你的 MCU 是 STM]]></description><category></category></item><item><title><![CDATA[中科闻歌前端面试题及参考答案]]></title><link>https://blog.csdn.net/linweidong/article/details/164508030</link><guid>https://blog.csdn.net/linweidong/article/details/164508030</guid><author>linweidong</author><pubDate>Tue, 08 Sep 2026 08:38:21 +0800</pubDate><description><![CDATA[call、apply、bind 无法修改箭头函数内部 this，就算传入参数，绑定 this 的参数会直接被忽略。]]></description><category></category></item><item><title><![CDATA[中科闻歌Java面试题及参考答案]]></title><link>https://blog.csdn.net/linweidong/article/details/164508436</link><guid>https://blog.csdn.net/linweidong/article/details/164508436</guid><author>linweidong</author><pubDate>Tue, 08 Sep 2026 08:38:01 +0800</pubDate><description><![CDATA[Java 集合框架整体分为 Collection 与 Map 两大体系，Collection 存储独立单个元素，Map 存储键值对映射关系，面试答题关键点在于区分接口和具体实现类，不能只罗列类名，需要从底层存储结构出发推导性能、特性、线程安全情况，同时区分过时实现类，这部分属于面试加分点，很多面试人员只会背诵类名，忽略底层结构与线程安全带来的取舍。Collection 下分为 List、Set、Queue 三个子接口。List 集合特征为元素有序、允许元素重复，存入顺序和遍历取出顺序保持一致。ArrayLi]]></description><category></category></item><item><title><![CDATA[2026 普通 Python 开发转型 AI Agent：学习清单与面试地图]]></title><link>https://blog.csdn.net/linweidong/article/details/164431813</link><guid>https://blog.csdn.net/linweidong/article/details/164431813</guid><author>linweidong</author><pubDate>Mon, 07 Sep 2026 07:18:16 +0800</pubDate><description><![CDATA[一个 Agent 请求往往同时要调 LLM、查数据库、调 MCP、搜网页、请求第三方 API、读文件，全是 I/O 操作。I/O 的特点就是等——等网络、等磁盘、等别人响应，这段时间 CPU 是闲的。asyncio 干的事，就是在这段等待时间里切去干别的活。串行 2 秒，并发 1 秒，这就是 Agent 系统离不开 async 的原因。顺序执行是两个 1 秒相加，asyncio.gather 并发执行约等于 1 秒。]]></description><category></category></item><item><title><![CDATA[Java 后端转 AI Agent 开发：2026 年学习清单与面试高频考点]]></title><link>https://blog.csdn.net/linweidong/article/details/164423141</link><guid>https://blog.csdn.net/linweidong/article/details/164423141</guid><author>linweidong</author><pubDate>Mon, 07 Sep 2026 07:18:03 +0800</pubDate><description><![CDATA[很多教程说 "加个 Redis 存聊天记录就是 Memory"，这是错的。Memory 至少分五层：Short-term（当前会话上下文）、Working（任务进行中的中间状态）、Long-term（跨会话的用户偏好和事实）、Semantic（长期知识）、Episodic（历史经验）。]]></description><category></category></item><item><title><![CDATA[阿里Lazada Java面经及参考答案]]></title><link>https://blog.csdn.net/linweidong/article/details/164193608</link><guid>https://blog.csdn.net/linweidong/article/details/164193608</guid><author>linweidong</author><pubDate>Tue, 01 Sep 2026 22:55:16 +0800</pubDate><description><![CDATA[List 与 Map 属于 Java 集合框架里两大核心分支，二者存储模型、元素特征、索引方式存在本质差异，面试关键点要分清 List 属于单列集合，Map 属于双列集合，加分点是不能只罗列类名，要讲清不同实现类底层差异和业务选型依据。记忆可以采用模型类比记忆法，把 List 类比成排队队列，每个元素按顺序依次摆放；Map 类比成字典，每一条记录由键和值成对组成，查内容依靠字典的词条。搭配对比表格记忆法，脑海构建一张对比表格，从存储单元、是否允许重复、索引依据三个维度快速区分二者。List 是 Collec]]></description><category></category></item><item><title><![CDATA[阿里钉钉C++面经及参考答案（下）]]></title><link>https://blog.csdn.net/linweidong/article/details/164189873</link><guid>https://blog.csdn.net/linweidong/article/details/164189873</guid><author>linweidong</author><pubDate>Tue, 01 Sep 2026 06:59:59 +0800</pubDate><description><![CDATA[unique_ptr 的核心特性是独占式所有权，不支持拷贝构造与拷贝赋值，仅支持移动语义转移资源管理权，无额外引用计数开销，性能接近裸指针，基于 RAII 自动释放资源，这些特性决定了它优先用于资源归属唯一、不需要多方共享的场景，也是现代 C++ 中应当优先选择的智能指针。最典型的场景是函数内部创建临时堆对象。函数内通过创建对象，在函数作用域结束时 unique_ptr 自动析构释放内存，即使中间出现异常、提前 return，栈上的 unique_ptr 也一定会触发析构，不会出现裸指针容易遗漏释放的问题。]]></description><category></category></item><item><title><![CDATA[阿里钉钉ios面经及参考答案]]></title><link>https://blog.csdn.net/linweidong/article/details/164192484</link><guid>https://blog.csdn.net/linweidong/article/details/164192484</guid><author>linweidong</author><pubDate>Mon, 31 Aug 2026 06:25:07 +0800</pubDate><description><![CDATA[iOS 开发面试中重点阐述的操作系统包含 Unix、Linux、macOS、iOS、Android、Windows、RTOS 实时操作系统，面试加分关键点是优先侧重类 Unix 体系，因为 iOS、macOS 内核都源自这套体系，和日常 iOS 底层调试、RunLoop、内存机制强相关。记忆采用体系归类记忆法，分为原生 Unix、开源类 Unix、苹果系、移动端其他、通用桌面、实时系统六组，再搭配特征关键词记忆法，每个系统提炼 3 个核心关键词方便口述。 Unix 诞生于 1970 年，是经典分时多用户操作]]></description><category></category></item><item><title><![CDATA[阿里钉钉C++面经及参考答案（上）]]></title><link>https://blog.csdn.net/linweidong/article/details/164189757</link><guid>https://blog.csdn.net/linweidong/article/details/164189757</guid><author>linweidong</author><pubDate>Mon, 31 Aug 2026 06:24:22 +0800</pubDate><description><![CDATA[构造函数初始化列表是紧跟在构造函数参数括号之后、函数体大括号之前，使用冒号开头，以。]]></description><category></category></item></channel></rss>