logstash kafka多台机器取数据,只有一个实例消费
来源:互联网 发布:手机淘宝客采集软件 编辑:程序博客网 时间:2024/05/17 05:10
logstash版本:2.3.4
描述:首先kafka的partition数量为6,多台logstash服务机器的topic相同并且groupId也相同。当分别启动机器时,只有一台机器在消费kafka数据,并且总是最后启动的那台在消费。修改了zk时间等各种kafka配置均没有效果,最后不得不看ruby源码了。感觉kakfa的代码写的还是有点问题的。
首先介绍logstash的input-kafka模块的代码结构
- 1
- 2
- 1
- 2
主要的代码逻辑集中在这两个ruby文件上,kafka.rb主要接收配置参数,并调用group.rb对kafka数据进行消费,这个过程是调用的kafka Java api,大体流程于Java代码类似。
仔细读下去会发现group.rb的代码有点问题:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
在定义的run方法中,
- 1
- 2
- 3
- 1
- 2
- 3
主要含义是删除zk目录下,该groupId的信息。就因为有这句话,原来logstash实例的消费信息就会被移除了,所以会出现上述现象(具体这样做的含义,因为时间原因没有过多的调研)
————–这里是解决方法———————
logstash-2.3.4/vendor/bundle/jruby/1.9/gems/jruby-kafka-1.5.0-java/lib/jruby-kafka 目录下,打开group.rb文件,找到代码片,用#注释掉即可
阅读全文
0 0
- logstash kafka多台机器取数据,只有一个实例消费【logstash2.3.4】
- logstash kafka多台机器取数据,只有一个实例消费
- Kafka 生产消费实例
- storm消费kafka数据
- Kafka与logstash数据交互
- logstash读取kafka数据插件
- sparkstreaming消费kafka中的数据
- STORM整合kafka消费数据
- storm实时消费kafka数据
- 使用Curator实现多台机器中只有一台机器执行任务
- Logstash之kafka数据入ElasticSearch
- Kafka与Logstash的数据采集
- 禁止一个应用程序的实例在同一台机器上运行多个(C#源码)
- kafka查看消费了多少条数据
- Sparak-Streaming基于Offset消费Kafka数据
- 关于kafka重新消费数据问题
- Kafka重复消费和丢失数据研究
- Kafka 生产消费 Avro 序列化数据
- 设置spinner选项选择后变成灰色
- Git的一些简单操作
- Lightoj1021Painful Bases (状压DP)
- [git]Git的使用流程(三)
- 3运算符
- logstash kafka多台机器取数据,只有一个实例消费
- MPLS VPN知识
- Java面向对象3
- 初学java--数据类型介绍
- eclipse安装、JDK安装、环境变量配置
- HDU
- Leetcode204.Count Primes
- Android_Android与Web端的数据交互
- A very hard mathematic problem HDU