首页

最近更新

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

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

Phorge 现代化改造实战(十四):为 Go 服务建立统一的 Phorge API 入口,网关可以换框架,Conduit 协议不能变

本文是“Phorge 现代化改造实战”系列第十四篇,记录给 Go 服务建立一条统一、受控的 Phorge API 入口:gorge-conduit 接收其它 Go 服务的 ANY /api/:method,完成服务令牌认证和按 IP 限流,再转发给 Phorge 自带的 Conduit API。网关可以换框架,但对外的 Conduit 协议格式不能变。 阅读全文

Phorge 现代化改造实战(十三):联调六项外部服务,容器在运行,不代表业务已经切换

本文是“Phorge 现代化改造实战”系列第十三篇,记录把 Phorge、六个 Gorge 服务及其数据库、搜索和邮件后端整体联通的过程:容器 Up、/healthz 200、/readyz 正常都不代表业务已经切换,按“运行、可达、就绪、被选中、业务生效”五个阶段逐层确认才算真的接上。 阅读全文

Phorge 现代化改造实战(十二):兼容 Elasticsearch 5、6、7,版本配置决定整个索引结构

本文是“Phorge 现代化改造实战”系列第十二篇,记录一次只有接上真实 Elasticsearch 和 Meilisearch 才暴露的搜索故障:ES 7.17 建索引报 mapper_parsing_exception、Meilisearch 因属性不可筛选返回 400。核心结论是版本配置决定整个索引结构,单元测试证明程序发出了自认为正确的请求,真实后端仍可能拒绝。 阅读全文

Phorge 现代化改造实战(十一):升级 Gorge 的 HTTP 框架,接口没变,行为也不能变

, , , , , , , ,
本文是“Phorge 现代化改造实战”系列第十一篇,记录把六个 Gorge 服务共享的 HTTP 底座从 Echo v4 迁到 Fiber v3、WebSocket 从 gorilla 换到 gofiber 的过程:接口、状态码、错误码、探针和协议都不能变,用“测试只升不降”守住那些反直觉的兼容语义。 阅读全文

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

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

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

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

Phorge 现代化改造实战(八):迁移搜索服务,写进索引不等于搜得到

本文是“Phorge 现代化改造实战”系列第八篇,记录把 `gorge-search` 迁进单仓库并替换一个已经有存量索引的实现:字段名要逐字符一致、mapping 改了必须重建索引、`/readyz` 到底承诺什么,以及 failover 该由谁负责。 阅读全文

Phorge 现代化改造实战(七):迁移邮件服务,先分清哪些失败不该重试

, , , , , , ,
本文是“Phorge 现代化改造实战”系列第七篇,记录把 `gorge-mailer` 迁进单仓库、接回 SMTP 与五家外部 provider 的过程,重点是三处静默故障:永久失败被当成临时错误、没有后端的进程仍然健康、两层配置只完成一层。 阅读全文

Phorge 现代化改造实战(六):替换实时通知服务,为什么 HTTP 501 反而表示正常

本文是“Phorge 现代化改造实战”系列第六篇,记录用 `gorge-notification` 替换 Phorge 自带的 Node.js 常驻服务 Aphlict 的过程:长连接、内存状态和集群扇出怎么做兼容,以及那些坏掉之后仍然返回 200 的协议约定。 阅读全文

更多内容