下载kafka二进制包kafka_2.11-0.9.0.1.tgz,解压到D:\tools\kafka_2.11-0.9.0.1
1.拷贝conf/server.properties为
第一个节点server-3.properties,修改如下内容:
broker.id=3
port=9093
host.name=localhost
log.dirs=D:\\tools\\kafka_2.11-0.9.0.1\\kafka-logs-9093 这里的日志应该是消息队列的日志
zookeeper.connect=localhost:2181
第二个节点server-4.properties,修改如下内容:
broker.id=4
port=9094
host.name=localhost
log.dirs=D:\\tools\\kafka_2.11-0.9.0.1\\kafka-logs-9094
zookeeper.connect=localhost:2181
2.修改kafka_2.10-0.8.1.1\config\log4j.properties ,添加:
kafka.logs.dir=D:\\tools\\kafka_2.11-0.9.0.1\\logs 这里的日志应该是每一个kafka server的状态日志
3.启动脚本
第一个节点:
set JMX_PORT=19093
cd D:\tools\kafka_2.11-0.9.0.1\bin\windows
kafka-server-start.bat ..\..\config\server-3.properties
第二个节点:
set JMX_PORT=19094
cd D:\tools\kafka_2.11-0.9.0.1\bin\windows
kafka-server-start.bat ..\..\config\server-4.properties
4.创建topic批处理脚本bin\kafka-topics.bat
kafka-run-class.bat kafka.admin.TopicCommand %*
5.创建topic
cd D:\tools\kafka_2.11-0.9.0.1\bin\windows
现在新创建一个topic, replication-factor表示该topic需要在不同的broker中保存几份,这里replication-factor设置为2, 表示在两个broker中保存。partitions表示对topic日志的分区数量。
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 2 --partitions 3 --topic my-replicated-topic
6.查看topic描述信息
cd D:\tools\kafka_2.11-0.9.0.1\bin\windows
查看topic列表
kafka-topics.bat --list --zookeeper localhost:2181
查看一个topic的详细信息
kafka-topics.bat --describe --zookeeper localhost:2181 --topic my-replicated-topic
输出结果
Topic:my-replicated-topic PartitionCount:3 ReplicationFactor:2 Configs:
Topic: my-replicated-topic Partition: 0 Leader: 3 Replicas: 3,2 Isr: 3,2
Topic: my-replicated-topic Partition: 1 Leader: 2 Replicas: 2,3 Isr: 2,3
Topic: my-replicated-topic Partition: 2 Leader: 3 Replicas: 3,2 Isr: 3,2
Leader: 如果有多个brokerBroker保存同一个topic,那么同时只能有一个Broker负责该topic的读写,其它的Broker作为实时备份。负责读写的Broker称为Leader.
Replicas : 表示该topic的0分区在3号和2号broker中保存,这里列出保存该分区的所有节点,不管该节点是否在服务中。
Isr : 表示正在服务中的broker, Isr是Replicas的子集
7.生产topic消息
kafka-console-producer.bat --broker-list localhost:9093 --topic my-replicated-topic
此时命令行光标移到下一行,这里在等待你输入要发送的消息。可以随意输入一些字符串。
8.消费topic消息
kafka-console-consumer.bat --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
此时这里会接收到你之前发送的消息,如果继续发送消息,这里会持续接收到消息。