Kafka 的设计时什么样的呢?
1、Kafka 将消息以 topic 为单位进行归纳
2、将向 Kafka topic 发布消息的程序成为 producers,
3、将预订 topics 并消费消息的程序成为 consumer.
4、Kafka 以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个 broker.
5、producers 通过网络将消息发送到 Kafka 集群,集群向消费者提供消息
数据传输的事物定义有哪三种?
数据传输的事务定义通常有以下三种级别:
1、最多一次:消息不会被重复发送,最多被传输一次,但也有可能一次不传输
2、最少一次:消息不会被漏发送,最少被传输一次,但也有可能被重复传输、
(3)精确的一次(Exactly once):不会漏传输也不会重复传输,每个消息都传输被一次而
3、且仅仅被传输一次,这是大家所期望的
Kafka 判断一个节点是否还活着有那两个条件?
1、节点必须可以维护和 ZooKeeper 的连接,Zookeeper 通过心跳机制检查每个节点的连
2、接
3、如果节点是个 follower,他必须能及时的同步 leader 的写操作,延时不能太久
producer 是否直接将数据发送到 broker 的 leader(主节点)?
producer 直接将数据发送到 broker 的 leader(主节点),不需要在多个节点进行分发,为了
帮助 producer 做到这点,所有的 Kafka 节点都可以及时的告知:哪些节点是活动的,目标
topic 目标分区的 leader 在哪。这样 producer 就可以直接将消息发送到目的地了
Kafa consumer 是否可以消费指定分区消息?
Kafa consumer 消费消息时,向 broker 发出"fetch"请求去消费特定分区的消息,consumer
指定消息在日志中的偏移量(offset),就可以消费从这个位置开始的消息,
customer 拥有
了 offset 的控制权,可以向后回滚去重新消费之前的消息,这是很有意义的
Kafka 消息是采用 Pull 模式,还是 Push 模式?