1. Apache Kafkaとは何ですか?
Apache Kafka是由Apache开发的一种发布订阅消息系统,它是一个分布式的、分区的和重复 的日志服务.
2.従来のメッセージング方法とは何ですか?
传统的消息传递方法包括两种:
排队:在队列中,一组用户可以从服务器中读取消息,每条消息都发送给其中一个人。
发布-订阅:在这个模型中,消息被广播给所有的用户
3. Kafkaが従来のメッセージング方法に比べてどのような利点があるか説明してください。
1) 高性能:单一的Kafka代理可以处理成千上万的客户端,每秒处理数兆字节的读写操作,Kafka
性能远超过传统的ActiveMQ、RabbitMQ等,而且Kafka支持Batch操作;(毫秒级别延迟数十万级吞吐量,)
2) 可扩展:Kafka集群可以透明的扩展,增加新的服务器进集群;
3) 容错性: Kafka每个Partition数据会复制到几台服务器,当某个Broker失效时,Zookeeper将通
知生产者和消费者从而使用其他的Broker;(副本,而且每一个副本都在不同的主机上)
4.カフカのブローカーの意味は何ですか?
在Kafka集群中,broker指Kafka服务器。
拓展:
partition分区: 为了实现扩展性,一个非常大的topic可以分布到多个broker(即
服务器)上,一个topic可以分为多个partition,每个partition是一个有
序的队列。partition中的每条消息都会被分配一个有序的id(offset)。
kafka只保证按一个partition中的顺序将消息发给consumer,不保证一
个topic的整体(多个partition间)的顺序
offset偏移量: kafka的存储文件都是按照offset.kafka来命名,用offset做名字
的好处是方便查找。例如你想找位于2049的位置,只要找到2048.kafka
的文件即可。当然the first offset就是00000000000.kafka
5. Kafkaサーバーが受信できる最大情報はどれくらいですか?
Kafka服务器可以接收到的消息的最大大小是1000000字节。
6.カフカのZooKeeperとは何ですか?KafkaはZooKeeperから独立して実行できますか?
Zookeeper是一个开放源码的、高性能的协调服务,它用于Kafka的分布式应用。
不可以,不可能越过Zookeeper直接联系Kafka broker,一旦Zookeeper停止工作,它就不能
服务客户端请求。(PS:Kafka正在逐步想办法将ZooKeeper剥离,维护两套集群成本较高,社区提出KIP-500就是要替换掉ZooKeeper的依赖。“Kafka on Kafka”——Kafka自己来管理自己的元数据)
原因:
1) ZK用来管理和协调broker,并且存储了Kafka的元数据(例如:有多少topic、partition、consumer)
2) ZK服务主要用于通知生产者和消费者Kafka集群中有新的broker加入、或者Kafka集群中出现故障的broker。
7.Kafkaユーザーが情報をどのように消費するかを説明してください。
在Kafka中传递消息是通过使用sendfile API完成的。它支持将字节Socket转移到磁盘,通过内
核空间保存副本,并在内核用户之间调用内核。
8.リモートユーザーのスループットを向上させる方法を説明してください。
如果用户位于与broker不同的数据中心,则可能需要调优Socket缓冲区大小,以对长网络延迟 进行摊销。
9.データ作成プロセス中に、Kafkaから正確な情報を取得するにはどうすればよいですか。
在数据中,为了精确地获得Kafka的消息,你必须遵循两件事: 在数据消耗期间避免重复,在数
据生产过程中避免重复。
这里有两种方法,可以在数据生成时准确地获得一个语义:
1) 每个分区使用一个单独的写入器,每当你发现一个网络错误,检查该分区中的最后一条消息,
以查看您的最后一次写入是否成功
2)在消息中包含一个主键(UUID或其他),并在用户中进行反复制
10.ISRの妨害を減らす方法を説明してください。ブローカーはいつISRを離れますか?
ISR是一组与leaders完全同步的消息副本,也就是说ISR中包含了所有提交的消息。ISR应该总北京市昌
是包含所有的副本,直到出现真正的故障。如果一个副本从leader中脱离出来,将会从ISR中删除。
11. Kafkaが複製する必要があるのはなぜですか?
Kafka的信息复制确保了任何已发布的消息不会丢失,并且可以在机器错误、程序错误或更常 见些的软件升级中使用。
12.コピーがISRに長期間留まるとはどういう意味ですか?
如果一个副本在ISR中保留了很长一段时间,那么它就表明,跟踪器无法像在leader收集数据那 样快速地获取数据。