View on GitHub

WePush

专注批量推送的小而美的工具,目前支持:模板消息-公众号、模板消息-小程序、微信客服消息、微信企业号/企业微信消息、阿里云短信、阿里大于模板短信 、腾讯云短信、云片网短信、E-Mail、HTTP请求、钉钉、华为云短信、百度云短信、又拍云短信、七牛云短信

ADR-0006:PostgreSQL Server 模式控制面高可用

背景

Standalone 模式使用单 Service 和 SQLite,不需要控制面集群。Server 模式需要支持 Service 实例故障、Agent 重连、调度互斥、并发领取 Run 和任意实例提供 API/SSE。方案应尽量减少必须部署的中间件。

决策

基线拓扑

API 和 Agent 连接

调度互斥

Run 领取和 Lease

实例间通知与持久消息

数据库迁移

故障行为

故障 预期行为
一个 Service 实例退出 REST/SSE 重连;Agent gRPC 重连;其他实例继续服务
调度 Leader 退出 Advisory Lock 自动释放,其他实例接任
一个轮询周期未观察到新事件/消息 下一周期继续从持久游标扫描补偿
PostgreSQL 暂时不可用 Service Readiness 失败,不创建新 Run;Agent 保留有界 Outbox
PostgreSQL 主从切换 Service 重建连接,重新竞选调度 Leader
Agent 连接到新实例 使用 Sequence 和 Lease Epoch 恢复,不重复接受旧写入

非目标

参考