消息队列

  • 什么是消息队列
    • 它的本质,就是个转发器,包含发消息、存消息、消费消息的过程。
  • 消息队列的应用场景
    1. 应用解耦
    2. 流量削峰
    3. 异步处理
    4. 消息通讯
    5. 远程调用
  • 消息队列如何解决消息丢失问题
    • RocketMQ消息中间件提供了三种发送消息的方式
      • 同步发送
      • 异步发送
      • 单向发送
    • 生产者要想发消息时保证消息不丢失,可以:
      1. 采用同步方式发送,send消息方法返回成功状态,就表示消息正常到达了存储端Broker。
      2. 如果send消息异常或者返回非成功状态,可以重试
      3. 可以使用事务消息,RocketMQ的事务消息机制就是为了保证零丢失来设计的
  • 消息队列如何保证消息的顺序性。
  • 消息队列有可能发生重复消费吗?如何幂等处理?
  • 如何处理消息队列的消息积压问题
  • 消息队列技术选型,Kafka还是RocketMQ,还是RabbitMQ
  • 消息中间件如何做到高可用?
  • 如何保证数据一致性,事务消息如何实现
  • 如果让你写一个消息队列,该如何进行架构设计?
  1. 如何保证消息顺序消费
  2. 如何保证消息不重复消费