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