Files
logseq/pages/消息队列 2.md

1.1 KiB
Raw Permalink Blame History

  • 消息丢失
    • 生产阶段
      • 发送消息后只要能正常收到ack确认响应就表示发送成功否则进行消息重发
    • 存储
      • 写入多个节点,保证多个副本
    • 消费
      • 消费者接受消息+处理消息之后才回复ack
  • 消息可靠性
    • 消息持久化,保存到硬盘
    • 消息确认机制
    • 消息重试策略,多次失败后将消息发送到死信队列
  • 消息顺序性
    • 金融消费,用户转账
    • kafka通过将消息划分到同一个分区中保证分区内消费的有序
    • 通过单线程或串行化策略保证消息按照正确顺序消费
  • 幂等写
    • 唯一标识每个请求全局唯一UUID
    • 数据库事务+乐观锁
    • 数据库唯一约束
    • 分布式锁
    • 消息去重
  • 消息积压
    • 优化消费逻辑,批量处理消息
    • 临时紧急扩容
      • 增加consumer
      • 新建topic使用临时分发数据的consumer分发积压的数据
  • 保证数据一致性/事务消息
    • 发送待发送的消息,生产者继续执行业务,成功就发送消息给消费者,失败就删除消息
  • Kafka