文章目录
前言
Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。
一、概念
1.1 消息队列的两种模式
1.1.1 点对点模式
生产者生产消息发送到队列中,消费者从队列中消费消息,消息消费之后,队列中的消息将会被删除,所以消费者不可重复消费
1.1.2 发布订阅模式
生产者生产消息发送到Topic中,只有订阅了Topic的消费者才能消费,并且消息消费之后,不会被删除。
1.2 消息队列的优点
- 解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。
- 可恢复性: 系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。
- 缓冲: 有助于控制和优化数据流经过系统的速度, 解决生产消息和消费消息的处理速度不一致的情况。
- 削峰: 在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列能够使关