- 博客(45)
- 收藏
- 关注
原创 Kubernetes声明式API与CRD详解
CRD(Custom Resource Definition)是扩展 Kubernetes API 的关键机制,允许用户定义自己的资源类型(如MyAppDatabase等),使其像原生资源(如 Pod、Deployment)一样被 API Server 处理。
2025-09-23 01:25:34
315
原创 DDIA第五章:无主复制(去中心化复制)详解
无主复制(Leaderless Replication)是一种去中心化的数据复制策略,与传统的主从复制(Leader-Follower)不同,其所有节点均可直接处理读写请求,无需依赖单一主节点。:客户端向多个节点并行发送写入请求,写入成功需满足特定条件(如W个节点确认)。常见策略包括“法定人数”(Quorum)机制,例如设定W + R > N(W=写入确认数,R=读取确认数,N=副本总数)以保证数据一致性。其中,$W$ 和 $R$ 分别代表写入和读取的确认数,$N$ 为副本总数。
2025-09-23 01:24:14
443
原创 《设计数据密集型应用》DDIA第六章:分区要点总结
分区是将大型数据集分解为更小子集(分区或分片)的过程,每个分区可以独立存储和处理。分区的主要目的是提高可扩展性,允许数据分布在多台机器上,从而支持更大的数据量和更高的吞吐量。结合键范围和哈希分区,例如先按哈希分区,再在每个分区内按范围排序。预先创建大量分区(如10倍于节点数),分区在节点间移动而非拆分。分区数量与节点数成正比,每个节点负责固定数量的分区。分区容忍性(CAP定理)与一致性级别的权衡,如最终一致性或线性一致性。涉及多分区的操作需要分布式事务或补偿机制(如Saga模式)。需要维护分区元数据。
2025-09-23 01:23:13
323
原创 Go 并发控制利器 ants 使用文档
ants 是一个高性能的 Goroutine 池库,用于控制并发任务的数量,避免资源耗尽。适用于需要限制 Goroutine 数量的场景,如高并发请求处理、批量任务执行等。
2025-09-23 01:22:14
653
原创 Golang信号处理实战
信号处理常用于优雅关闭程序、清理资源或执行特定操作。该包允许程序监听并处理操作系统发送的信号,如。在Golang中,信号处理主要通过。
2025-09-23 01:20:33
304
原创 【DDIA】最后一章:数据系统的未来
批流一体化(Unified Batch-Stream Processing)成为趋势,用户可通过同一套API处理历史和实时数据,减少系统复杂性。指标(Metrics)、日志(Logs)和追踪(Traces)的关联分析帮助定位跨服务问题。GDPR等法规推动数据最小化(Data Minimization)和可解释性(Explainability)成为系统设计的硬性要求。《数据密集型应用系统设计》(DDIA)最后一章探讨了数据系统的演进方向,涵盖技术融合、架构变革及社会影响。)推动透明算法工具包。
2025-09-23 01:19:35
362
原创 [MCP][07]logging和progress
Python标准库中的logging模块提供了灵活的日志记录功能,可以方便地记录程序运行时的信息、警告和错误。logging模块支持不同级别的日志记录,可以将日志输出到文件、控制台或其他地方。progress是一个Python库,用于在终端中显示进度条,帮助用户跟踪长时间运行的任务的进度。为不同模块创建独立的日志记录器,使用有意义的日志格式,包括时间戳、模块名称和日志级别。tqdm是另一个流行的进度条库,可以快速为循环添加进度显示,支持在Jupyter notebook中使用,并提供了多种自定义选项。
2025-09-23 01:18:12
376
原创 基于DSP+ARM+FPGA架构的储能协调控制器
采用Cortex-M7或A系列处理器(如STM32H7或i.MX6),运行Linux/RTOS系统,负责Modbus/TCP、CAN等协议栈处理,以及人机交互(HMI)和数据存储。DSP负责高精度算法处理,ARM实现系统管理和通信,FPGA处理高速并行逻辑与接口扩展。FPGA直接处理MPPT算法输出的PWM波,DSP实现电池充放电曲线跟踪,ARM协调光伏逆变器与电网调度指令。ARM通过OPC UA与上层EMS通信,DSP计算下垂控制参数,FPGA同步多逆变器相位(精度<1μs)。
2025-09-23 01:16:29
410
1
原创 【DDIA】第二部分:分布式数据
分布式数据系统涉及数据在多台机器上的存储、处理和协调,主要解决单机系统在可扩展性、容错性和性能方面的限制。核心挑战包括数据分区、复制、一致性与事务处理。
2025-09-23 01:14:46
667
原创 VSCode REST Client 使用总结
REST Client 是 VSCode 中一款流行的 HTTP 请求工具,允许用户直接在编辑器中发送和测试 API 请求。以下为功能总结与使用方法。通过上述功能,REST Client 可覆盖大多数 API 测试场景,无需切换工具即可完成开发调试。在 VSCode 扩展商店搜索 "REST Client" 并安装。响应内容会显示在右侧面板,包括状态码、响应头和响应体。)与 URL 需写在第一行,请求头另起一行。后缀的文件即可开始编写请求。或使用快捷键(默认为。
2025-09-23 01:11:23
911
原创 Go高效复用对象:sync.Pool详解
是 Go 标准库提供的一个对象池,用于存储临时对象以减少内存分配和垃圾回收压力。它适用于频繁创建和销毁对象的场景,例如 HTTP 请求处理、缓冲区管理等。,可以显著减少内存分配和 GC 压力,提升程序性能。
2025-09-23 01:01:16
1230
原创 c语言动态内存管理
在C语言中,动态内存管理允许程序在运行时根据需要申请和释放内存。静态内存分配在编译时确定大小,而动态内存分配更加灵活,适用于不确定内存需求的情况。函数用于调整之前分配的内存块的大小。如果新的大小大于原大小,可能会移动内存块到新的位置。函数不仅分配内存,还会将内存初始化为零。它接受两个参数:元素数量和每个元素的大小。函数用于分配指定大小的内存块,返回指向该内存块的指针。未释放不再使用的内存会导致内存泄漏,长期运行的程序可能会耗尽内存。释放内存后继续使用指针会导致未定义行为。释放后的指针不应再被使用。
2025-09-23 00:58:14
825
原创 ubuntu配置docker环境
如果镜像拉取缓慢,检查镜像加速器配置是否正确。遇到其他问题时,可以查阅 Docker 官方文档或社区支持。在 Ubuntu 系统中安装 Docker 可以通过官方仓库完成。Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。”的输出,说明 Docker 已成功安装并运行。国内用户可以通过配置镜像加速器提升 Docker 镜像下载速度。如果遇到权限问题,确保当前用户已添加到。默认情况下,Docker 需要。重新登录后,可以直接运行。,可以将当前用户添加到。
2025-09-23 00:57:15
580
原创 Postgre配置环境变量
若提示“命令未找到”,请检查路径是否正确或重新加载配置文件。右键点击“此电脑”或“计算机”,选择“属性” → “高级系统设置” → “环境变量”。在 Windows 系统中配置 PostgreSQL 环境变量,需将 PostgreSQL 的。:在共享环境中明文存储密码可能存在安全风险,建议仅在开发环境中使用此方法。在 Linux 或 macOS 中,通过修改 shell 配置文件(如。在 Windows 中,通过“环境变量”窗口添加新系统变量。,点击“编辑”并添加 PostgreSQL 的。
2025-09-22 00:34:01
739
原创 Solidbi仪表板的设计过程
确定数据来源(如数据库、API、Excel等),确保数据质量和一致性。使用Solidbi的数据连接工具集成数据,必要时进行清洗和转换。明确仪表板的核心用途,如监控关键指标、分析趋势或支持决策。与利益相关者沟通,确定需要展示的数据类型、优先级及目标用户群体。采用网格布局划分区域,将核心指标放在显眼位置。部署仪表板后定期更新数据模型,监控使用情况。根据业务变化调整指标或布局,保持仪表板的时效性。
2025-09-22 00:32:54
789
原创 MySQL的Schema是什么?
MySQL 中的 Schema 是一个逻辑容器,用于组织和管理数据库对象(如表、视图、索引等)。在 MySQL 中,Schema 与 Database 是同义词,创建 Schema 等同于创建 Database。所有数据库对象(表、视图、存储过程等)必须属于某个 Schema,便于分类和维护。可以通过授权机制限制用户对特定 Schema 的访问权限,例如仅允许某用户读写。不同 Schema 之间相互独立,可以避免命名冲突或数据混乱。可以为每个租户分配独立的 Schema,实现数据隔离。
2025-09-22 00:31:21
525
原创 phpkg 让 PHP 摆脱 Composer 依赖
phpkg 是一个新兴的 PHP 包管理工具,旨在提供更轻量、灵活的依赖管理方案,减少对 Composer 的依赖。它通过简化包加载流程、支持自定义包源等方式,为开发者提供替代选择。
2025-09-21 01:56:15
1026
原创 [MCP][07]logging和progress等功能说明
DEBUG 用于开发调试,INFO 记录常规操作,WARNING 提示潜在问题,ERROR 记录错误,CRITICAL 标记严重问题。progress 实现方式多样,可以是简单的文本进度显示,也可以是图形化进度条。输出可以定向到控制台、文件或网络服务。通过日志记录,开发者可以追踪程序执行流程,排查问题,或分析用户行为。在需要同时记录日志和显示进度的场景中,可以将两者结合。例如长时间任务中,既要在日志中记录关键步骤,又要向用户显示实时进度。注意避免日志输出干扰进度显示,通常建议将日志写入文件而非控制台。
2025-09-21 01:55:06
403
原创 LLVM/Clang LibTooling Out-of-Tree开发
LibTooling 是 LLVM/Clang 提供的一个库,用于构建独立运行的代码分析工具。它支持对 C/C++ 源代码进行解析、遍历和修改,适合用于静态分析、重构工具或自定义编译器插件开发。Out-of-Tree 开发指在 LLVM/Clang 源码树之外独立构建工具。
2025-09-21 01:53:51
557
原创 WebKit Insie: WebKit 调试(二)
Web Inspector 是 WebKit 内置的调试工具,可通过浏览器开发者工具访问。在性能分析选项卡中,可以记录页面加载和运行的性能数据。确保设备与调试主机在同一网络,并在设备设置中启用“Web Inspector”选项。检查注册状态和生命周期事件,确保脚本正确安装和激活。在远程调试会话中,可以实时查看和修改设备的 DOM、CSS 和 JavaScript。使用离线模式模拟网络断开情况,验证 Service Worker 的故障恢复能力。过滤日志内容,聚焦特定来源或级别的消息。测量代码块执行时间。
2025-09-21 01:52:15
584
原创 Flutter应用自动更新系统:生产环境的挑战与解决方案
在生产环境中,移动应用需要频繁迭代以修复漏洞、优化性能或添加新功能。手动更新依赖用户主动操作,可能导致版本碎片化。自动更新系统能提升用户体验并确保应用一致性,但需解决平台限制、网络稳定性、安全校验等挑战。
2025-09-21 01:40:55
797
原创 轻松部署 Stable Diffusion WebUI 并实现局域网共享访问:解决 Conda Python 版本不为 3.10.6 的难题
若现有环境 Python 版本不符,需强制使用 Conda 环境的 Python 路径。通过以上步骤,可确保在 Python 3.10.6 环境中稳定运行 Stable Diffusion WebUI,并实现局域网共享访问。下载 Miniconda 或 Anaconda 并完成安装。同一局域网下的设备可通过主机 IP 地址访问,格式为。: 检查模型文件完整性及存放路径是否符合要求。运行启动脚本后,终端会显示本地访问地址(如。跳过自动安装,手动安装缺失包。参数为其他未占用端口。(Windows)或。
2025-09-20 04:02:04
617
原创 算法实战入门第二篇:链表结构与五大经典应用
链表是一种线性数据结构,由节点(Node)通过指针链接组成。每个节点包含数据域和指针域,指针域存储下一个节点的地址。与数组不同,链表在内存中非连续存储,支持动态扩容。图的顶点用链表数组表示,每个顶点的链表存储其邻接顶点。相比邻接矩阵,邻接表更节省空间(尤其适合稀疏图),且便于实现深度优先搜索(DFS)等算法。每个节点存储系数(coef)和指数(exp),按指数升序链接。超过语言内置类型范围的整数可用链表存储,每个节点保存一位数字。: 简化边界条件处理,如合并两个有序链表时,哨兵节点作为新链表的临时头节点。
2025-09-20 03:57:34
564
原创 FastAPI 跨域配置与 Vue 响应式交互的手写数字识别
启动 Vue 前端项目后,上传手写数字图片即可看到预测结果。确保后端地址与前端请求的。使用 TensorFlow 训练一个简单的 MNIST 手写数字识别模型,保存为。FastAPI 后端需要配置 CORS 中间件以允许跨域请求。发送图片数据到 FastAPI 后端,并处理响应式结果。,同时安装机器学习相关库如。供 FastAPI 加载。(用于手写数字识别模型)。
2025-09-20 03:55:56
367
原创 基于 PyTorch 模型训练优化
采用 Xavier 或 Kaiming 初始化方法避免梯度消失/爆炸。在显存不足时通过多次小批量累积梯度再更新参数,模拟大批量训练效果。结合 Dropout、BatchNorm 和权重衰减抑制过拟合。参数启用多进程数据加载,避免数据加载成为训练瓶颈。训练后通过量化降低模型精度,或移除冗余权重减小模型体积。监控验证集性能,当连续若干轮未提升时提前终止训练。自动混合精度模块,减少显存占用并提升计算速度。防止梯度爆炸问题,尤其适用于 RNN 结构。实现多 GPU 并行训练。加速 GPU 数据传输。
2025-09-20 03:54:38
333
原创 Java ThreadPoolExecutor 动态调整核心线程数:方法与注意事项
坑/建议核心要点仅修改数值,不会主动终止线程必须开启才能让核心线程自动退出队列的影响队列任务过多时,动态调整效果有限新增核心线程只有新任务到来时才会创建新线程平滑调整,避免激进最好配合监控,逐步调整,避免对系统造成过大波动。
2025-09-17 05:23:33
291
原创 一调就崩 vs 一调就飞:线程池线程数究竟怎么定?
结果发现,CPU Load 100%,Memory飙红,机器狂热,业务反而比单线程跑得还慢。更诡异的是,有次线程多了队列飘着两万任务卡死现场,没想到本地能飞,线上直接翘辫子。其实,线程池线程数这玩意儿吧,真不是多多益善。说起线程池配置,哈,我真是被坑怕了。那年刚进公司,小项目没几台服务器,公司却野心勃勃要“高并发”,我也青春年少,觉得线程多就是王道,甩手上了个。要是多线程都是IO型的活?小技巧:实在不懂,记住一个保命数——“CPU核数乘2”,先上线再慢慢精细调。,哈哈哈,没想到,调着调着服务器直接进医院。
2025-09-17 05:22:30
353
原创 别再无脑 synchronized 了!Java 锁优化的 7 个狠招
有一次爬过最辣的坑,就是用 synchronized 锁了 static 方法,结果所有实例互相堵,业务直接宕机,那叫一个郁闷。不仅如此,还见过同事在 for 循环里反复 new ReentrantLock,以为锁住了,实际 nothing happened。比如“抢红包”啊、“统计访问量”啊,反正上个锁稳当点——写着写着,系统直接卡成 PPT。今天就来跟你聊聊,怎么优雅地优化 Java 里的锁,别再无脑锁全局对象了,咱得学点狠招。写多线程代码和谈恋爱差不多,不要死磕,要懂得“放手”。
2025-09-17 05:21:46
241
原创 Java 线程安全详解:定义、常见问题与解决方案
大家好,我又双叒叕来写流水账了。这次说点“老生常谈”的:线程安全。要不是上周现场出Bug让小组猝不及防,我还真不会想把多年踩坑心路写下来。闲话不多说,往下看吧,绝对比《Java 并发编程实战》好消化,起码气氛活跃!
2025-09-17 05:21:03
308
原创 Java 自适应自旋锁机制详解:原理、优缺点与应用场景
嘿,其实 JVM 对锁可是“见招拆招”,招数多得你都分不清谁是亲儿子谁是干儿子。前两天,项目里突发了一次 CPU 飙高“小地震”,同事们疯狂查 GC,我却本能地往线程堆栈一看,果不其然,锁竞争一片狼藉。你等着就是浪费,何不让线程先自个儿“转两圈”,说不定锁很快就到手了。自旋锁,说白了,就是被阻塞的线程先不睡,CPU 上原地打转(忙等),“等你放锁我立刻扑过来,绝不错过旗舰抢购”。简直像极了生活里的“碰瓷专家”:一次说不定能成,但多半自知趣,见机行事。你以为自适应自旋锁就是“打怪利器”,实战里没踩坑?
2025-09-17 05:20:18
364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅