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