常见的系统设计

存储

一般用 mysql。数据量达到两千万以上的考虑分库分表。
高并发场景,考虑加入缓存。

缓存

使用缓存时,要注意:
https://blog.csdn.net/sinat_32502451/article/details/139545057

逻辑执行失败,如何处理?

  • 补偿
    当业务逻辑执行失败时,可以做一些补偿处理。
    建一个任务表,当任务失败时,写入到任务表中。通过定时任务,扫描任务表,对逻辑进行补偿。
    多次自动补偿,仍失败的,考虑人工补偿。

  • 重试
    根据业务,设置重试的次数、重试的时间间隔。

常见的重试策略:

  • 立即重试:客户端立即重新发送请求。
  • 固定间隔:在失败和重试之间等待固定长的时间。
  • 递增间隔:客户端在第一次重试时等待较短时间,后面每一次重试时则逐渐增加等待时长。
  • 指数退避(Exponential Backoff):在每次重试失败之后增加重试之间的等待时间。例如,当一个请求第一次失败时,我们在1秒之后重试;如果它第二次也失败了,在重试之前我们等待2秒;如果它第三次仍然失败,我们在重试之前等待4秒。
  • 取消:客户端可以取消请求。这是当请求总是失败或者重试不太可能成功时的常见操作。

重试的使用,详情见: https://blog.csdn.net/sinat_32502451/article/details/133774582

系统之间的对接方式/通信方式

  • 同步通信:客户端发送请求,然后等待服务器的响应,将连接保持为打开的状态,直到知道结果。HTTP就是这样工作的。
  • 异步通信:客户端不等待服务器的响应,一旦发送了请求,连接就关闭了。当请求被处理后,结果被返回给客户端,这通常是通过一个网络钩子(Webhook)来实现的。Webhook,也称为网络回调,是一个应用/服务提供实时更新给其他应用/服务的方式。
    常见的异步通信:消息队列MQ、接口回调。

接口回调

详情见: https://blog.csdn.net/sinat_32502451/article/details/139859380

posted on   乐之者v  阅读(7)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-07-10 线程的状态与基本操作
2018-07-10 java多线程通信方式之一:wait/notify
2018-07-10 synchronized的简单理解
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示