KafKa基本入门教程

本教程开始前,假设你已经下载并解压到相应目录下java

windows 下启动kafkaapache

第1步:启动服务器
进入到kafka安装目录
1.先启动zookeeper
bin\windows\zookeeper-server-start.bat config/zookeeper.propertiesbootstrap

2.再启动kafka
bin\windows\kafka-server-start.bat config/server.propertieswindows

第2步:建立一个主题
bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTheme服务器

若是咱们运行list topic命令,咱们如今能够看到该主题:
bin\windows\kafka-topics.bat --list --zookeeper localhost:2181测试

第3步:发送一些消息
Kafka带有一个命令行客户端,它将从文件或标准输入中获取输入,并将其做为消息发送到Kafka集群。默认状况下,每行将做为单独的消息发送。运行生产者,而后在控制台中输入几条消息发送到服务器。
bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic testTheme
This is a message
Hello Worldui

第4步:启动消费者
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic testTheme --from-beginningspa

第5步:设置多代理群集
首先咱们为每一个代理建立一个配置文件命令行

server-1.properties
server-2.properties代理

如今编辑这些新文件并设置下列属性:
server-1.properties:
    broker.id=1
    listeners=PLAINTEXT://:9093
    log.dir=/tmp/kafka-logs-1
 
server-2.properties:
    broker.id=2
    listeners=PLAINTEXT://:9094
    log.dir=/tmp/kafka-logs-2
该broker.id属性是群集中每一个节点的惟一且永久的名称。咱们必须重写端口和日志目录,由于咱们在同一台机器上运行这些端口和日志目录,而且咱们但愿让全部代理都试图在同一个端口上注册或覆盖彼此的数据。

咱们已经有Zookeeper和咱们的单节点了,因此咱们只须要启动两个新节点:
bin\windows\kafka-server-start.bat config/server-1.properties


bin\windows\kafka-server-start.bat config/server-2.properties

如今建立一个复制因子为3的新主题:
bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

如今咱们有一个集群,咱们怎么知道哪一个经纪人在作什么?要查看运行“描述主题”命令:
bin\windows\kafka-topics.bat --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic   PartitionCount:1    ReplicationFactor:3 Configs:
    Topic: my-replicated-topic  Partition: 0    Leader: 1   Replicas: 1,2,0 Isr: 1,2,0

这里作一下解释。第一行给出了全部分区的摘要,每一个附加行提供了有关一个分区的信息。因为咱们只有一个分区,因此只有一行。
“Leader(leader)”是负责给定分区的全部读写操做的节点。每一个节点将成为分区随机选择部分的领导者。
“Replicas(副本)”是复制此分区的日志的节点列表,不管他们是领导者仍是他们如今都活着。
“Isr”是一组“同步”副本。这是复制品列表的子集,目前活着并被引导到领导者身边。

请注意,在个人示例中,节点1是该主题惟一分区的领导者。

咱们能够在咱们建立的原始主题上运行相同的命令,以查看它的位置:
bin\windows\kafka-topics.bat --describe --zookeeper localhost:2181 --topic testTheme
Topic:testTheme   PartitionCount:1    ReplicationFactor:1 Configs:
    Topic: testTheme  Partition: 0    Leader: 0   Replicas: 0 Isr: 0

因此在这里并不奇怪,原始主题没有副本,而且在服务器0上,它是咱们建立群集时惟一的服务器。

让咱们发布一些消息给咱们的新主题:
bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic my-replicated-topic
message 1
message 2

让咱们获取这些消息:
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
message 1
message 2

如今咱们来测试容错。因为leader1是领导者,如今咱们关闭它
wmic process where "caption = 'java.exe' and commandline like '%server-1.properties%'" get proce
ProcessId
3632
taskkill /pid 3632 /f

leader已切换到其中一个从属节点,而且节点1再也不处于同步副本集中:
bin\windows\kafka-topics.bat --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,1,2 Isr: 0,2

可是即便原先的leadern停掉,这些消息仍然可用于消费:
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
message 1
message 2

入门教程到这里就结束了,是否是很是简单,Linux上的操做和windows同样只须要

把bin\windows 换成bin/   .bat换成.sh便可。

点击此处直接下载:kafka下载

官网教程:http://kafka.apache.org/quickstart

相关文章
相关标签/搜索