安装
安装Kafka首先要安装配置zookeeper。
配置
server.properties
配置项:
broker.id broker在集群中唯一的标识,要求是正数。
num.network.threads=4 broker处理消息的最大线程数,一般情况下数量为cpu核数
num.io.threads=8 broker处理磁盘IO的线程数,数值为cpu核数的2倍
message.max.bytes 消息体的最大字节
zookeeper.connect=localhost:2181 zookeeper集群地址,可以是多个,用逗号分割。hostname1:port1,hostname2:port2
num.partitions=1 每个topic的分区个数
http://blog.csdn.net/lizhitao/article/details/25667831
命令
启动服务
bin/kafka-server-start.sh config/server.properties
创建topic,正常情况下,每个broker上两个partition最好。
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic xxx
列出所有的topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
producer发送消息
bin/kafka-console-producer.sh --broker-list localhost:9002 --topic xxx
consumer接收消息
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic xxx --from-beginning
程序
1.创建topic
(1)开启自动创建topic配置:auto.create.topics.enable=true
(2)使用程序直接往kafka相应的topic发送数据,如果topic不存在就会按默认配置进行创建。
2.consumer接收消息
//指定topic和partition num
streams[] =Consumer.createMessageStreams ("topic1",1)
//迭代读取消息,如果没有消息,会阻塞直到有新的消息发布
for(message : streams[0]) {
bytes=message.payload();
//do with bytes
}
3.producer发布消息
producer =new Producer();
message = new Message("xxx".getBytes());
//消息集set,批量发布
set =new MessageSet(message);
//指定topic
producer.send("topic",set)