Kafka基本使用
官网地址 http://kafka.apache.org/ 一切应以官网文档为准。
安装
download里下载要安装的版本。或者直接wget该网址。如wget http://mirrors.cnnic.cn/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz
quickstart里有安装方法:
tar -zxvf kafka_2.11-0.8.2.1.tgz
config/server.properties下有各种各种配置
先要保证zookeeper以启动,然后启动kafka bin/kafka-server-start.sh config/server.properties
测试
可以先测试一下:这些命令都以官网最新的为准: 建topic(指定zookeeper factor partitions topic名) bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
看topic (指定zookeeper) bin/kafka-topics.sh --list --zookeeper localhost:2181
启动consumer (指定zookeeper topic from开始) 启动后不要关 bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
再启一个窗口 启动producer (指定broker topic) 输入内容回车,去consumer观察 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
报错
注意版本问题,如果javaApi producer版本高,想在客户端consumer启动低版本验证,会不停的报错:
Closing socket connection to/127,0,0,1.(kafka.network.Processor) 无法识别客户端消息。
由于需要定时启动Kafka consumer拉取数据,第一次启动后,没有关掉线程。
但Kafka consumer是非线程安全的,第二次消费数据时会报错:
java.util.ConcurrentModificationException: KafkaConsumer is not safe for multi-threaded access