🗒️消息队列

type
status
slug
summary
tags
category
icon
password
Date

为什么需要消息队列

哪些问题适合使用消息队列来解决?

  1. 异步处理
减少等待,提高步骤之间的并发
  1. 流量控制
削峰填谷
  1. 服务解耦
  1. 作为发布/订阅系统,实现一个微服务级系统间的观察者模式;
  1. 连接流计算任务和数据;
  1. 用于将消息广播给大量接收者。
使用消息队列引入的问题:
  1. 延迟问题;
  1. 增加了系统的复杂度;
  1. 可能产生数据不一致的问题。
 

如何处理消费过程中的重复消息?

幂等
1. 用数据库唯一约束实现幂等
  1. 为更新的数据设置前提条件
另外一种实现幂等的思路是,给数据变更设置一个前置条件,如果满足条件就更新数据,否则拒绝更新数据,在更新数据的时候,同时变更前置条件中需要判断的数据
3. 记录并检查操作
通用性最强,适用范围最广的实现幂等性方法:记录并检查操作,也称为“Token 机制或者 GUID(全局唯一 ID)机制”,实现的思路特别简单:在执行数据更新操作之前,先检查一下是否执行过这个更新操作。
Loading...

© NotionNext 2021-2025