Kafka
1.安装Java环境
2.安装Zookeeper
注意:
1.打开zookeeper-x.x.x\conf,把zoo_sample.cfg重命名为zoo.cfg
2.在文本中编辑zoo.cfg,把dataDir的值改成"./zookeeper-x.x.x/data"
3.设置系统变量:
1.新建:ZOOKEEPER_HOME:x\x\x\zookeeper-x.x.x
2.在path后追加:%ZOOKEEPER_HOME%\bin
3.Kafka
注意:
1.打开kafka-x.x.x\config\server.properties,把log.dirs的值改为"./logs"或者其它,就是为了存日志
1.开启kafka:
1.开启zookeeper:
1.windows:直接执行zkServer.cmd 2.linux:bin/zookeeper-server-start.sh config/zookeeper.properties
2.开启Kafka
windows:
.\bin\windows\kafka-server-start.bat .\config\server.properties
linux:
bin/kafka-server-start.sh config/server.properties
2.执行命令:
1.创建一个名为“test”的topic,它有一个分区和一个副本:
windows进入bin\windows\目录执行: kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test linux下进入bin目录执行: kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
(以下部分都windows同linux的执行方式同1一样)
2.用list命令查看topic
kafka-topics.bat --list --zookeeper localhost:2181
3.发送消息
Kafka自带命令行客户端,它从标准输入中获取输入,并将其作为message发送到Kafka集群,默认情况下,每行将作为单独的message发送
运行producer,然后在控制台输入一些消息以发送到服务器。
kafka-console-producer.bat --broker-list localhost:9092 --topic test
此时在控制台输入信息v
启动一个consumer
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
4.设置多代理集群
首先为每个代理创建一个配置文件(在windows上使用copy命令代替):
cp config/server.properties config/server-1.properties cp config/server.properties config/server-2.properties
之后编辑
config/server-1.properties: broker.id=1 listeners=PLAINTEXT://:9093 log.dir=/tmp/kafka-logs-1 config/server-2.properties: broker.id=2 listeners=PLAINTEXT://:9094 log.dir=/tmp/kafka-logs-2
根据配置启动两个新的节点:
bin/kafka-server-start.sh config/server-1.properties bin/kafka-server-start.sh config/server-2.properties
创建一个副本为3的topic
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
假如现在有二个集群,想要知道各代理都在做什么,查询命令
> kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic Topic: my-replicated-topic PartitionCount: 1 ReplicationFactor: 3 Configs: Topic: my-replicated-topic Partition: 0 Leader: 0 Replicas: 0,2,1 Isr: 0,2,1
以下是对输出信息的解释。第一行给出了所有分区的摘要,下面的每行都给出了一个分区的信息。因为我们只有一个分区,所以只有一行。
- “leader”是负责给定分区所有读写操作的节点。每个节点都是随机选择的部分分区的领导者。
- “replicas”是复制分区日志的节点列表,不管这些节点是leader还是仅仅活着。
- “isr”是一组“同步”replicas,是replicas列表的子集,它活着并被指到leader。