把配置加载做稳:分层覆盖、显式优先级与启动校验

分层配置与校验

配置出错往往不像代码缺陷那样立刻抛出堆栈:测试环境的地址被线上变量覆盖、超时值从 5000 变成字符串、临时命令忘记撤销,服务仍能启动,却在流量进入后表现异常。要让配置可靠,关键不是再增加一个 .env 文件,而是让来源、优先级、类型和生效结果都可解释。

Read More

用 Transactional Outbox 把领域事件发布做稳

Transactional Outbox 可靠事件发布

创建订单后既要提交订单数据,又要通知库存、积分或搜索系统;这两件事若分两步完成,就会留下危险的中间态:数据库成功而消息没发出,或消息已发出而事务随后回滚。Transactional Outbox(事务外盒)把“待发布事件”与业务数据放进同一事务,让可靠性先落在最擅长提交的数据库里。

Read More

把 Webhook 接稳:签名校验、重放防护与可追溯处理

Webhook 事件安全接收流程

Webhook 把“定时去问对方有没有变化”变成“变化发生时由对方通知我”,很适合支付结果、代码仓库事件和订阅状态同步。但它的入口暴露在公网,收到一段看似正确的 JSON 并不等于事件可信:攻击者可以伪造请求,网络也会带来重复投递和乱序。要把 Webhook 接稳,应把验真、限时、去重和异步处理视为同一条防线。

Read More

把 API 限流做对:令牌桶、分布式配额与降级响应

API 限流与流量治理

限流不是简单地把“每秒 100 次”写进网关。突发请求是否允许、配额按用户还是按接口计算、多个实例如何共享计数、拒绝后客户端怎样恢复,都会决定系统是在高峰期有序降速,还是制造更多重试。可靠的限流应该既保护容量,也保持公平,并给调用方清晰、可执行的反馈。

Read More