系统设计注意事项

首先是流程设计

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

系统调用

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

同步调用

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

分布式事务

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

幂等

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

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

事务

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

异步调用

消息解耦 经典

一致性

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

个人博客

台北下了雪


版权声明:本文为randompeople原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。