Kafka 0.8 Consumer处理逻辑】的更多相关文章

0.前言 客户端用法: kafka.javaapi.consumer.ConsumerConnector consumer = kafka.consumer.Consumer.createJavaConsumerConnector(new ConsumerConfig(properties)); // 决定一个topic启动几个线程去拉取数据,即生成几个KafkaStream: Map<String, Integer> topicCountMap = new HashMap<String…
摘要 本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer实现的语义,以及适用场景.以及未来版本中对High Level Consumer的重新设计–使用Consumer Coordinator解决Split Brain和Herd等问题. 1.High Level Consumer 很多时候,客户程序只是希望从Kafka读取数据,不太关心消息offset的处理.同时也希望提供一些…
1 Rebalance时机 0.10kafka的rebalance条件 条件1:有新的consumer加入 条件2:旧的consumer挂了 条件3:coordinator挂了,集群选举出新的coordinator(0.10 特有的) 条件4:topic的partition新加 条件5:consumer调用unsubscrible(),取消topic的订阅 当一个group中,有consumer加入或者离开时,会触发partitions均衡.均衡的最终目的,是提升topic的并发消费能力. 当c…
Kafka Producer产生数据发送给Kafka Server,具体的分发逻辑及负载均衡逻辑,全部由producer维护. 1.Kafka Producer默认调用逻辑 1.1 默认Partition逻辑 1.没有key时的分发逻辑 每隔 topic.metadata.refresh.interval.ms 的时间,随机选择一个partition.这个时间窗口内的所有记录发送到这个partition.发送数据出错后也会重新选择一个partition 2.根据key分发 对key求hash,然…
Kafka 0.9版本对java client的api做出了较大调整,本文主要总结了Kafka 0.9在集群搭建.高可用性.新API方面的相关过程和细节,以及本人在安装调试过程中踩出的各种坑. 关于Kafka的结构.功能.特点.适用场景等,网上到处都是,我就不再赘述了,直接进入正文 Kafka 0.9集群安装配置 操作系统:CentOS 6.5 1. 安装Java环境 Zookeeper和Kafka的运行都需要Java环境,所以先安装JRE,Kafka默认使用G1垃圾回收器,如果不更改垃圾回收器…
2.1 Producer API We encourage all new development to use the new Java producer. This client is production tested and generally both faster and more fully featured than the previous Scala client. You can use this client by adding a dependency on the c…
http://kafka.apache.org/documentation.html#configuration   Broker Configs 4个必填参数, broker.id Each broker is uniquely identified by a non-negative integer id broker唯一标识,broker可以在不同的host或port,但必须保证id唯一 log.dirs (/tmp/kafka-logs) 日志文件存放的目录 可以用逗号隔开多个目录,当创…
ConsumerConfig.scala 储存Consumer的配置 按照我的理解,0.10的Kafka没有专门的SimpleConsumer,仍然是沿用0.8版本的. 1.从poll开始 消费的规则如下: 一个partition只能被同一个ConsumersGroup的一个线程所消费. 线程数小于partition数,某些线程会消费多个partition. 线程数等于partition数,一个线程正好消费一个线程. 当添加消费者线程时,会触发rebalance,partition的分配发送变化…
本文是翻译作品,作者是Piotr Nowojski和Michael Winters.前者是该方案的实现者. 原文地址是https://data-artisans.com/blog/end-to-end-exactly-once-processing-apache-flink-apache-kafka 2017年12月Apache Flink社区发布了1.4版本.该版本正式引入了一个里程碑式的功能:两阶段提交Sink,即TwoPhaseCommitSinkFunction.该SinkFunctio…
很高兴地告诉大家,具备新的里程碑意义的功能的Kafka 0.11.x版本(对应 Confluent Platform 3.3)已经release,该版本引入了exactly-once语义,本文阐述的内容包括: Apache Kafka的exactly-once语义: 为什么exactly-once是一个很难解决的分布式问题: 使用Kafka Stream API来进行正确的exactly-once流式处理: Exactly-once 是真正意义上的难题 从理论上来说,Exactly-once d…