a:简介
i. 消息的发布(publish)称作producer,消息的订阅(subscribe)称作consumer,中间的存储阵列称作broker。
ii. 多个broker协同合作,producer、consumer和broker三者之间通过zookeeper来协调请求和转发。
iii. producer产生和推送(push)数据到broker,consumer从broker拉取(pull)数据并进行处理。
iv. broker端不维护数据的消费状态,提升了性能。
v. 直接使用磁盘进行存储,线性读写,速度快:避免了数据在JVM内存和系统内存之间的复制,减少耗性能的创建对象和垃圾回收。
vi. Kafka使用scala编写,可以运行在JVM上。
ii. 多个broker协同合作,producer、consumer和broker三者之间通过zookeeper来协调请求和转发。
iii. producer产生和推送(push)数据到broker,consumer从broker拉取(pull)数据并进行处理。
iv. broker端不维护数据的消费状态,提升了性能。
v. 直接使用磁盘进行存储,线性读写,速度快:避免了数据在JVM内存和系统内存之间的复制,减少耗性能的创建对象和垃圾回收。
vi. Kafka使用scala编写,可以运行在JVM上。
b. 下载kafka
- wget -q http://apache.fayea.com/apache-mirror/kafka/0.8.1/kafka_2.8.0-0.8.1.tgz
- tar -xzvf kafka_2.8.0-0.8.1.tgz
- rm kafka_2.8.0-0.8.1.tgz
- cd kafka_2.8.0-0.8.1
- /bin 启动和停止命令等。
/config 配置文件
/libs 类库
c.启动和停止
启动Zookeeper server:
- bin/zookeeper-server-start.sh config/zookeeper.properties &
- &是为了能退出命令行
启动Kafka server:
- bin/kafka-server-start.sh config/server.properties &
4. 单机连通性测试
运行producer:
早版本的Kafka,--broker-list localhost:9092需改为--zookeeper localhost:2181
运行consumer:
在producer端输入字符串并回车,查看consumer端是否显示。
运行producer:
早版本的Kafka,--broker-list localhost:9092需改为--zookeeper localhost:2181
运行consumer:
在producer端输入字符串并回车,查看consumer端是否显示。
创建Topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic page_visits
查看所有topic
bin/kafka-topics.sh --list --zookeeper localhost:2181