简介
kafka是分布式消息发布和订阅的系统,具有高性能和高吞吐率。
producer:消息的发布,
consumer:消息的订阅,
broker:中间的存储阵列。
多个broker协同合作,producer、consumer和broker三者之间通过zookeeper来协调请求和转发。
producer产生和推送(push)数据到broker,consumer从broker拉取(pull)数据并进行处理。
broker端不维护数据的消费状态,提升了性能。
直接使用磁盘进行存储,线性读写,速度快:避免了数据在JVM内存和系统内存之间的复制,减少耗性能的创建对象和垃圾回收。
Kafka使用scala编写,可以运行在JVM上。
安装
首先安装JDK
下载kafka
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.11.0.0/kafka_2.12-0.11.0.0.tgz
解压
tar -zxvf kafka_2.12-0.11.0.0.tgz
rm kafka_2.12-0.11.0.0
cd kafka_2.12-0.11.0.0/
启动和停止
启动Zookeeper server:
bin/zookeeper-server-start.sh config/zookeeper.properties &
启动Kafka server:
bin/kafka-server-start.sh config/server.properties &
单机连通性测试
运行producer:
consumer:
分布式连通性测试
服务器server1(192.168.1.11):Zookeeper Server, Kafka Server, Producer
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
服务器server2(192.168.1.12):Consumer
bin/kafka-console-consumer.sh --zookeeper 192.168.1.11:2181 --topic test --from-beginning