POSTS

分布式事务

分布式事务 单库事务依赖数据库的 ACID 能力;跨服务或跨数据源后,没有天然的全局原子提交。方案选择应围绕一致性要求、可用性、吞吐量和业务补偿成本,而不是追求统一解法。 2PC / XA 2PC 由协调者驱动:第一阶段询问参与者是否可以提 …

POSTS

发信箱模式 Outbox Pattern

解决了什么问题? 分布式系统通过消息队列等手段互相解耦带来的状态不一致, 如数据落库成功但是kafka消息发送失败等情况 是什么? 利用本地数据库事务的原子性,将数据入库和消息入库(outbox-records)变为原子性操作。 异步启动一 …

POSTS

Golang 多路复用

快速路径 运用 select 中的 default 分支可以实现无锁(非阻塞)的快速检查 select { case v, ok := <- ch: if !ok { // ch 已经被关闭, 直接返回 return io.EOF } …