开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情
Kafka基本概念
Kafka的介绍
Apache Kafka是分布式发布-订阅消息系统(消息中间件)。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。
就像是一个放鸡蛋的篮子。生产者生产鸡蛋放到篮子中,消费者从篮子中消费鸡蛋。
消息系统
Kafka的优势
Kafka就是一个分布式的用于消息存储的消息队列。一般用于大数据的流式处理中。
一些常见的中间件:ActiveMQ,IBMMQ,RabbitMQ,ZMQ 但都不是分布式的。
Apache Kafka与传统消息系统相比,有以下不同:
它是分布式系统,易于向外扩展。
它同时为发布和订阅提供高吞吐量。
它支持多订阅者,当失败时能自动平衡消费者。
它将消息持久化到磁盘,因此可用于批量消费,允许多个消费者消费数据。
消息队列的两种模式
1、点对点模式(一对一,消费者主动拉取数据,消息收到后清除)。
2、发布订阅模式(一对多,消费者消费数据之后不会删除,数据可以被多个消费者使用)。有两种消费方式,一种是消费者主动拉取操纵,好处是速度可以自己控制,坏处是要维护一个常轮询,不断询问队列是否有新数据产生;另一种是消息队列推送数据,消费者的消费能力不一样,没法根据不同的消费者提供不同的推送速度。