1.what?

Kafka是一种高吞吐量的分布式发布订阅消息系统。 ## 2.why?

  • 提高效率
  • 应用解耦 多个子系统之间使用Kafka,允许独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。
  • 可恢复性 系统的一部分组件失效时不会影响到整个系统,消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复之后被处理。
  • 缓冲
  • 流量削锋 流量过大的场景 ## 3.消息队列两种模式
  1. 点对点(一对一,消费者主动拉取消息,消息收到后清除)

  2. 发布/订阅模式(一对多,消费者消费数据后不会清消息),分两种:

  • 消费者主动拉数据

    消费者需要维护一个长轮询,不断询问消息队列是否有数据

  • 消息队列主动推给消费者