kafka基础使用方法(java)
来源:互联网 发布:javascript new关键字 编辑:程序博客网 时间:2024/06/16 21:20
Producer/Comsumer Demo源代码见:
https://github.com/CalicoBox/True-Time-Count-Demo
操作步骤:
创建Topic
$ cd /opt/cloudera/parcels/KAFKA-2.1.1-1.2.1.1.p0.18 $ bin/kafka-topics --create--zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
分析:虽然kafka对外开放的api中没有建立topic的方法,但是实验证明,当producer发送一个新topic消息到broker时会自动建立一个对应的topic。
不过自动建立的topic使用的是默认配置,若有需要还需手动修改配置。发送数据到kafka
$ bin/kafka-console-producer --broker-list xxx.xxx.xxx.xxx:9092 --topic test
(红框内的消息需要手动输入)
分析:kafka默认通过9092端口与producer和consumer进行数据交互。正式使用时该步骤由producer端的脚本替代。建立Consumer消费数据
$ bin/kafka-console-consumer --zookeeper xxx.xxx.xxx.xxx:2181--bootstrap-server xxx.xxx.xxx.xxx:9092 --topictest --from-beginning
分析:成功读出test中的数据。正式使用时该步骤由consumer端的脚本替代。
问题汇总:
别用localhost!!!
问题再现:最开始按照官方文档的指引,使用一下命令来建立一个测试用的producer
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
结果出现上图中的问题:org.apache.kafka.common.errors.TimeoutException:
Failed to update metadata after 60000 ms.
对于该问题作出一下猜想:认为问题出在zookeeper对于某ip的权限限制上面,换句话说官方文档中的demo应该是在单机环境中的,此时zookeeper与kafka在同一机器上,zookeeper对该机器localhost有权限更新metadata,而在使用多节点集群时,zookeeper为了防止传输出现偏差,禁止了localhost的相应权限。
要验证以上猜想,需要在单机环境下进行测试,没时间做。再说吧。╮(╯_╰)╭
解决方法:改用特定ip即可,就这么简单,但是问题找了很久,一点办法都木有。
总结:别用localhost!!有必要熟悉一下zookeeper的原理。
- kafka基础使用方法(java)
- Kafka使用方法
- Kafka基础(二)
- Kafka基础(一)
- Java基础之static使用方法
- kafka基础
- kafka基础
- kafka基础
- Kafka基础
- kafka, storm,hdfs日志处理方法(附storm-kafka, storm-hdfs使用方法)
- kafka (java API demo)
- Kafka分布式消息队列(一):基础
- Apache Kafka笔记(一):基础架构
- Java网络编程基础 Datagram类使用方法
- java基础小结(附String的使用方法)
- kafka文档(2)----kafka API(java版本)
- Kafka:Kafka的生产和消费(Java版本)
- kafka java
- ORACLE数据库的数据对象-表、约束、视图、索引、序列
- You may have an infinite update loop in a component render function
- IMP导入数据库时报缓冲区长度不够的解决方案
- Git学习笔记(一)
- 图片上传及显示
- kafka基础使用方法(java)
- Docker基础教程(4)进阶命令-1-网络,数据卷等内容
- position 和 display 的取值和各自的意思和用法
- 相机围绕目标旋转
- 停止线程的三种方法
- CentOS 7 安装配置 NFS
- 详解Uncoide、ASCII、UTF-8
- OpenCV 1.0在VC6下安装与配置(附测试程序)
- [Android]Ams 广播发送原理(三)