随笔分类 - Kafka
摘要:1.命令 启动: zookeeper: bin/zkServer.sh start kafka: bin/kafka-server-start.sh -daemon config/server.properties 查看topic: bin/kafka-topics.sh --bootstrap-s
阅读全文
摘要:1.文件目录布局 Kafka消息以日志文件的形式存储,不同主题下不同分区的消息分开存储,同一个分区的不同副本分布在不同的broker上存储 逻辑上看来日志是以副本为单位的,每个副本对应一个log对象,实际在物理上,一个log划分为多个logSegment 创建一个topic为3个分区,会在log.d
阅读全文
摘要:1.Reactor模式 一个线程监视一堆连接,同步等待一个或多个事件到来,然后将事件分发给对应的Handler处理 2.Kafka网络通信模型 引用源码(2.0.0)注释里的一段话: An NIO socket server. The threading model is 1 Acceptor th
阅读全文
摘要:1.优先副本的选举 优先副本是为了解决负载失衡的情况,是指在AR集合列表中的第一个副本,比如分区0的AR集合列表为[1,2,0],那么分区0的优先副本即为1。理想情况下优先副本就是该分区的leader副本 优先副本的选举是指通过一定的方式促使优先副本选举为leader副本,来促进集群的负载均衡,也称
阅读全文
摘要:Kafka对主题的管理通过Kafka-topics.sh来执行,内容如下: exec $(dirname $0)/kafka-run-class.sh kafka.admin.TopicCommand "$@" 内部调用了kafka.admin.TopicCommand类 1.创建主题 如果配置了参
阅读全文
摘要:1.fetch.min.bytes consumer一次拉取中拉取的最小数据量,默认值为1B 2.fetch.max.bytes consumer一次拉取中拉取的最大数据量,默认值为52428800B,即50MB 3.fetch.max.wait.ms 指定Kafka的等待时间,默认值为500ms,
阅读全文
摘要:正常的消费逻辑需要以下几步: 配置消费者相关参数 创建一个消费者对象 订阅主题 拉取消息并消费 提交消费位移 关闭消费者实例 示例代码: import org.apache.kafka.clients.consumer.*; import org.apache.kafka.common.serial
阅读全文
摘要:1.acks 决定分区中有多少副本收到这条消息,生产者才会认为这条消息成功写入 有三种类型的值(String): acks=1,默认值,只要leader写入成功即返回成功响应(折中方案) acks=0,不需要等待服务端响应,可以达到最大吞吐量(其他配置相同条件下) acks=-1或all,等待ISR
阅读全文
摘要:整体架构 流程分析 生产者客户端由2个线程构成,分别为主线程和发送线程,主线程中KafkaProducer创建消息,经过拦截器、序列化器、分区器之后,缓存到消息累加器,然后发送线程从消息累加器中获取消息并将其发送到Kafka中 累加器主要的作用是缓存消息,让发送线程可以批量发送,减少网络传输资源消耗
阅读全文
摘要:正常的生产逻辑需要以下几步: 配置生产者相关参数 创建一个生产者对象 构建发送消息 发送消息 关闭生产者实例 示例代码: import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.p
阅读全文

浙公网安备 33010602011771号