kafka是什么?优点是什么?应用场景?
高性能的流处理平台。高性能、高可靠、高可用、高吞吐、可伸缩。 日志系统、消息处理系统等。
kafka的核心组件
producer、broker、consumer、topic、partition、replica、leader、follower、consumer group、rebalance、offset、ISR
kafka中zk的作用?
配置中心。保存集群成员信息、集群元数据、controller控制信息等。
kafka高可靠-怎么保证数据不丢失?
producer:消息发送策略有三种:发完即返回、同步发送、异步发送。acks=0、acks=all
broker:partition多副本
consumer:offset刷新时机。
kafka高吞吐?
- producer:batch send,按批次发送数据。kafka Reactor网络模型
- broker:topic分区。
- consumer:使用消费组,同一个topic由组内多个消费者一起拉取,可水平扩展。每个消费者批量拉取数据。
- 零拷贝。sendfile。数据从page cache直接到网卡缓存取,避免用户态和内核态的多次拷贝。
- 数据压缩
如何提高吞吐量?
- producer:调整batch.size、linger.ms
- broker:调整分区数
kafka可伸缩体现在?
broker、partition、consumer。 partition伸缩时要考虑消息有序性。新增partition后,要重新对key进行hash,可能影响有序性。
kafka怎么保证消息有序?
kafka是分区有序的。 分区选择策略:轮询、随机、分区策略、自定义策略。