文章列表

Phorge 现代化改造实战(十六):把数据库自省搬进 Gorge,跨仓契约不能靠手工同步

本文是“Phorge 现代化改造实战”系列第十六篇,记录用 gorge-db-api 接管节点健康、复制状态、结构差异和升级状态查询的过程:接口返回 200,PHP 却可能因为字段名不一致生成错误对象。r3 用 /api/db/meta 运行时握手、两仓共享标准 JSON 和跨仓测试建立契约,跨仓契约不能靠手工同步。 阅读全文

Phorge 现代化改造实战(十五):用 Go 接管 Phorge 工作队列,如何避免新旧消费者互相抢任务

, , , , , , , ,
本文是“Phorge 现代化改造实战”系列第十五篇,记录用 gorge-taskqueue 和 gorge-worker 两个 Go 服务接管 Phorge 有状态的后台工作队列:继承队列的线协议,处理 ID 分配、活跃表、租约抢占、yield 和 Conduit 请求格式,并在停掉旧 taskmaster 后证明任务只由预期的消费者处理、新旧消费者不会互相抢任务。 阅读全文

Phorge 现代化改造实战(十):迁移 Webhook 投递服务,先解决重复投递

本文是“Phorge 现代化改造实战”系列第十篇,记录把 Webhook 投递迁进 `gorge-webhook` 的过程。这次调用方向反了过来:Go 直接轮询 Phorge 的队列表,所以要先用乐观抢占、接管开关和只读诊断接口,把“只投递一次”变成可以证明的结果。 阅读全文

Phorge 现代化改造实战(九):迁移文件存储,写得进去也要读得回来

, , , , , , , ,
本文是“Phorge 现代化改造实战”系列第九篇,记录把 `gorge-file-storage` 迁进单仓库、接上 MySQL、本地磁盘和 S3 三个后端的过程:Phorge 管元数据、Gorge 只管字节,以及为什么保留 8MB 上限反而能稳定处理更大的文件。 阅读全文

Phorge 现代化改造实战(二):改进容器化的七个细节

, , , , , ,
本文是“Phorge 现代化改造实战”系列第二篇,记录把上一篇的最小可运行容器从“能跑起来”改进到“可配置、可持久化、可观测”的过程。 阅读全文

Phorge 现代化改造实战(一):从没有官方镜像到 Docker Compose 跑起来

, , , , , ,
Phabricator 停止维护后,社区 fork 出的 Phorge 接过了后续维护,但截至 2026 年 9 月仍未提供官方 Dockerfile 和容器镜像。本文是“Phorge 现代化改造实战”系列第一篇,记录我把自己 fork 的源码做成最小可运行容器基线的过程。 阅读全文

ThinkPad + Redis:构建亿级数据毫秒级查询的平民方案

, , , , ,
针对亿级数据毫秒级查询需求,采用二手ThinkPad L14笔记本(AMD Ryzen 7 PRO 4750U、64GB内存)替代云服务器,解决高IO场景下虚拟机死机问题。通过Docker部署Redis 7.4. 阅读全文

快速上手 ClickHouse

, , ,
ClickHouse 是一款面向列式存储的开源分析型数据库,适用于准实时数据分析、海量数据聚合筛选及多源数据归档等场景。硬件选择需优先评估数据规模与内存门槛,亿级以下数据最低 4 核 16GB 虚拟机即可胜任,更高量级建议配置 32GB 以 阅读全文

MySQL 云数据库物理备份本地恢复方案

, , , ,
针对国内云平台 MySQL 物理备份恢复需求,基于 Percona 官方容器镜像构建了一套简洁的本地恢复方案。通过 Docker Compose 部署 Percona XtraDB Cluster 5. 阅读全文

PHP MySQL 操作类

, ,
该代码实现了一个基于 PHP 的 MySQL 数据库操作封装类,采用面向对象设计提供数据库连接管理、SQL 语句执行及结果处理等核心功能。类中定义了主机地址、用户名、密码、数据库名等私有属性,支持持久连接与普通连接两种模式,并包含查询、插入、更新、删除等常用操作。 阅读全文