Kafka知识点总结

220 阅读1分钟

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是分区有序的。 分区选择策略:轮询、随机、分区策略、自定义策略。