系统设计注意事项

本文探讨了分布式系统中的流程设计,包括同步和异步调用。重点讲解了幂等性设计,提出了两种策略:提供路由字段或根据幂等key做路由。同时,讨论了事务管理和一致性问题,建议采用快照事务数据和对账监控来确保数据一致性。此外,还提到了异步调用中的一致性挑战和解决方案,如兜底任务和消息解耦。
摘要由CSDN通过智能技术生成

首先是流程设计

流程图来帮助大家了解业务逻辑

系统调用

多个系统的交互,肯定会涉及到同步调用,异步调用

同步调用

重试机制如何选择,比如幂等设计,哪些code 需要重试

分布式事务

可以自研一个TCC二阶段的事务,或者利用定时任务来做补偿型事务,定时的回调各个系统来回收资源

幂等

幂等的key是外部系统选择的,但有时候内部设计会根据 key做一些路由,主要可能是 分库分表,根据key选择分库路由字段,这个时候幂等的设计就需要思考,因为幂等key都是外界生成的,有两种方式:

  • 提供路由字段让外界去指定
    比如前一次的查询的时候就提供key出去,让上游根据这个key 做幂等key后面拼接
  • 根据幂等key做路由
    这种不能保证一定是均衡的
事务

事务特性在交易环节是一个必要设计,事务可以存一个快照,快照事务数据用来做资源归还

异步调用

消息解耦 经典

一致性

异步调用、消息解耦 、多存储系统 设计过程中一致性就是经典问题,永远不知道下游到底是不是拿到数据了, 这个就是系统需要考虑的,滚雪球般的数据不一致,问题有了,方法呢?
● 对账监控发现问题
毕竟你不确定是业务逻辑问题、还是超时等情况
● 兜底任务
用定时任务来做增量、全量的数据推送,刷缓存、发起推送。

个人博客

台北下了雪

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值