Kafka问题排查(消费者自动关闭)
public void run(){
try{
System. out.println( "Consumer....");
Map<String,Integer> topicCountMap = new HashMap<String,Integer>();
topicCountMap.put( topic, partitionNum);
Map<String,List<KafkaStream< byte[], byte[]>>> consumerMap = consumer.createMessageStreams( topicCountMap);
List<KafkaStream< byte[], byte[]>> partitions = consumerMap.get( topic); threadPool = Executors. newCachedThreadPool();
for(KafkaStream< byte[], byte[]> partition : partitions){
threadPool.execute( new MessageFetcher(partition,producer ));
}
} catch(Exception ex){
logger.info( "KafkaConsumer-> Run -> ErrInfo : " +ex.getMessage());
close();
}
}
有一个 partitionNum,在代码中的可配置值为 private int partitionNum = 3;
把partitionNum 改为 1 即可解决此问题。
问题跟踪源码分析:
partitionNUm 改为 1 , 此处的Num 为ThreadNum ,因为kafka内部实现中,都为多线程, partition为1时,此时有一个backingQueue1,三个fetch thread 线程,该topic分布在几个node上就有几个 fetch thread 每个fetch thread 会于kafka broker建立一个连接,3个fetch thread线程去拉去消息数据,最终防盗blockingQueue中,等到consumer thread来消费。
Kafka问题排查(消费者自动关闭)的更多相关文章
- 关于Kafka 的 consumer 消费者处理的一些见解
前言 在上一篇 Kafka使用Java实现数据的生产和消费demo 中介绍如何简单的使用kafka进行数据传输.本篇则重点介绍kafka中的 consumer 消费者的讲解. 应用场景 在上一篇kaf ...
- [Spark][kafka]kafka 生产者,消费者 互动例子
[Spark][kafka]kafka 生产者,消费者 互动例子 # pwd/usr/local/kafka_2.11-0.10.0.1/bin 创建topic:# ./kafka-topics.sh ...
- kafka生产者和消费者流程
前言 根据源码分析kafka java客户端的生产者和消费者的流程. 基于zookeeper的旧消费者 kafka消费者从消费数据到关闭经历的流程. 由于3个核心线程 基于zookeeper的连接器监 ...
- Apache Kafka 0.9消费者客户端
当Kafka最初创建时,它与Scala生产者和消费者客户端一起运送.随着时间的推移,我们开始意识到这些API的许多限制.例如,我们有一个“高级”消费者API,它支持消费者组并处理故障转移,但不支持许多 ...
- kafka生产者和消费者api的简单使用
kafka生产者和消费者api的简单使用 一.背景 二.需要实现的功能 1.生产者实现功能 1.KafkaProducer线程安全的,可以在多线程中使用. 2.消息发送的key和value的序列化 3 ...
- Kafka分区与消费者的关系
1. 前言 我们知道,生产者发送消息到主题,消费者订阅主题(以消费者组的名义订阅),而主题下是分区,消息是存储在分区中的,所以事实上生产者发送消息到分区,消费者则从分区读取消息,那么,这里问题来了, ...
- Kafka 生产者和消费者入门代码基础
这篇博文讲解Kafka 的生产者和消费者实例. 基础版本一 生产者 ProducerFastStart.java package com.xingyun.tutorial_1; import org. ...
- 基于Kafka的生产者消费者消息处理本地调试
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/68174111冷血之心的博客) Kafka下载地址:http://d ...
- Kafka分区数与消费者个数
Kafka的分区数是不是越多越好? 分区多的优点 kafka使用分区将topic的消息打散到多个分区分布保存在不同的broker上,实现了producer和consumer消息处理的高吞吐量.Kafk ...
随机推荐
- STM32之独立版USB(Host)驱动+MSC+Fatfs移植
源:STM32之独立版USB(Host)驱动+MSC+Fatfs移植 STM32之USB驱动库详解(架构+文件+函数+使用说明+示例程序)
- SQL学习笔记之MySQL查询练习2
(网络搜集) 0x00 数据准备 CREATE TABLE students (sno ) NOT NULL, sname ) NOT NULL, ssex ) NOT NULL, sbirthday ...
- Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...
- 高级bash脚本编程(三)
高级bash脚本编程 知识点 compound 和 comparison -a 逻辑与 exp1 -a exp2 如果表达式 exp1 和 exp2 都为真的话,那么结果为真. -o 逻辑或 exp1 ...
- Java编程学习之JDBC连接MySQL
JDBC连接MySQL 一.对JDBC连接数据库的步骤1.加载数据库驱动//加载驱动Class.forName(driverClass)-------------------------------- ...
- ArrayList扩容
jdk1.5 public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0) throw new Illega ...
- Android移动软件开发总结
目录 Android实验参考目录 常用知识点总结 服务绑定bind Service ThreadService使用总结 Service用法总结 Broadcast Receiver用法 Intent使 ...
- Mininet实验 命令延伸实验扩展
本文参照:Mininet 命令延伸实验扩展 步骤1:命令行创建拓扑 sudo mn --topo minimal 最小的网络拓扑,一个交换机下挂两个主机. sudo mn --topo linear, ...
- APP AutoTestCaseID
public class AutoTestCaseID { ElementExist el = new ElementExist(); static AutoTestExcelFile ft = ne ...
- ongene database
http://ongene.bioinfo-minzhao.org/index.html