kafka单机安装
最近一个项目要使用到kafka,所以看了一些资料,总结了一下单机的安装方法。一、1个broker1.官网下载kafkawget http://mirrors.cnnic.cn/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz cd kafka_2.11-0.8.2.12.启动zookeeperbin/zookeeper-ser
·
最近一个项目要使用到kafka,所以看了一些资料,总结了一下单机的安装方法。
一、1个broker
1.官网下载kafka
wget http://mirrors.cnnic.cn/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz
cd kafka_2.11-0.8.2.1
2.启动zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties &
3.启动kafka server
bin/kafka-server-start.sh config/server.properties &
4.创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看创建topics是否成功
bin/kafka-topics.sh --list --zookeeper localhost:2181
查看topics详细信息
bin/kafka-topics.sh --describe --zookeeper localhost:2181
5.启动producer
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
6.启动consumer
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
在producer窗口输入信息,回车后,在consumer窗口可以看到。注意到这里,启动producer时,使用的是kafka的端口;而启动consumer时,使用的是zookeeper的端口。
二、多个brokers(单机)
1.设置配置文件
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-1.properties
config/server-1.properties
broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1
config/server-2.properties
broker.id=1
port=9094
log.dir=/tmp/kafka-logs-2
broker.id是每个broker唯一且永久的标识,因为当前所有broker都部署在一台机器上,所以需要修改port和log.dir。
2.启动这两台broker
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &
3.创建topic,设置replication-factor为3
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
4.通过describe命令查看topic的详细信息
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
第一行是所有partition的一个summary,下面的每一行是每个partition的具体信息。因为我们这里只有一个partition,所以只有一行。
leader:负责所有的read-write请求。
replicas:消息备份的节点(不管节点是否是leader,或者是否alive)。
isr:in-sync replicas。是replicas的一个子集。是指replicas中状态为alive的节点。
5.发布消息
6.消费消息bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
7.测试容错性
在第4步中看到,leader是节点1,现在把这个进程关闭。
ps -ef | grep server-1.properties
kill -9 14576
通过describe命令再次查看,可以看到leader已经变成了节点2,isr列表中也没有了节点1。
但是这都不影响消息的消费。
更多推荐
已为社区贡献1条内容
所有评论(0)