常见的系统设计

存储

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

缓存

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

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

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

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

常见的重试策略:

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

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

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

接口回调

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

posted on 2024-07-10 19:56  乐之者v  阅读(1)  评论(0编辑  收藏  举报

导航