其适应场景主要有:
**
1)**日志收集方向:**可以用 Kafka 来收集各种服务的 log,然后统一输出,比如日志系统 elk,用 Kafka 进行数据中转。
2)**消息系统方向:**Kafka 具备系统解耦、副本冗余、流量削峰、消息缓冲、可伸缩性、容错性等功能,同时还提供了消息顺序性保障以及消息回溯功能等。
3)**大数据实时计算方向:**Kafka 提供了一套完整的流式处理框架, 被广泛应用到大数据处理,如与 flink、spark、storm 等整合。
2. 什么是消费者组,有什么作用?
首先我们来看看什么是「消费者组」:
消费者组 Consumer Group,顾名思义就是由多个 Consumer 组成,且拥有一个公共且唯一的 Group ID。组内每个消费者负责消费不同分区的数据,**但一个分区只能由一个组内消费者消费,**消费者组之间互不影响。
为什么 Kafka 要设计 Consumer Group, 只有 Consumer 不可以吗?
我们知道 Kafka 是一款高吞吐量,低延迟,高并发, 高可扩展的消息队列产品, 那么如果某个 Topic 拥有数百万到数千万的数据量, 仅仅依靠 Consumer 进程消费, 消费速度可想而知, 所以需要一个扩展性较好的机制来保障消费进度, 这个时候 Consumer Group 应运而生, Consumer Group 是 Kafka 提供的可扩展且具有容错性的消费者机制。
Kafka Consumer Group 特点如下:
1)每个 Consumer Group 有一个或者多个 Consumer。
2)每个 Consumer Group 拥有一个公共且唯一的 Group ID。
3) Consumer Group 在消费 Topic 的时候,Topic 的每个 Partition 只能分配给组内的某个 Consumer,只要被任何 Consumer 消费一次, 那么这条数据就可以认为被当前 Consumer Group 消费成功。
3. 在 Kafka 中,ZooKeeper 的作用是什么?
先说标准答案:目前,Kafka 使用 ZooKeeper 存放集群元数据、成员管理、Controller 选举,以及其他一些管理类任务。之后,等 KIP-500 提案完成后,Kafka 将完全不再依赖于 ZooKeeper。
记住,一定要突出“目前”,以彰显你非常了解社区的演进计划。“存放元数据”是指主题分区的所有数据都保存在 ZooKeeper 中,且以它保存的数据为权威,其他“人”