【Kafka】简单入门使用(实例)

安装
:brew install kafka
启动服务
:zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties & kafka-server-start /usr/local/etc/kafka/server.properties
新建一个话题Topic

Topic的名字叫"test",只有一个分区和一个备份。:

:kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic test.

查看存在的Topic列表:

:kafka-topics --list --zookeeper localhost:2181
test

除了手工创建Topic,你也可以配置你的broker当发布一个不存在的topic时自动创建topic。

发送消息

Kafka提供了一个命令行的工具,可以从输入文件或者命令行中读取消息并发送给Kafka集群。每一行是一条消息。

:kafka-console-producer --broker-list localhost:9092 --topic test 
>lurongming
>lurongming2
>lurongming3
>lurongming4
消费消息

Kafka也提供了一个消费消息的命令行工具。

:kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning
lurongming
lurongming2
lurongming3
lurongming4
设置多个broker
:cp /usr/local/etc/kafka/server.properties /usr/local/etc/kafka/server-1.properties
:cp /usr/local/etc/kafka/server.properties /usr/local/etc/kafka/server-2.properties

修改文件如下:

/usr/local/etc/kafka/server-1.properties
    broker.id=1
    listeners=PLAINTEXT://:9093
    log.dir=/tmp/kafka-logs-1
 
/usr/local/etc/kafka/server-2.properties
    broker.id=2
    listeners=PLAINTEXT://:9094
    log.dir=/tmp/kafka-logs-2

broker.id属性别重样。为了在一台机器上启动两个broker,改了一下它们的port的。
Zookeeper还在,上面用的broker还活着。 来启动这两个broker.

:kafka-server-start /usr/local/etc/kafka/server-1.properties
:kafka-server-start /usr/local/etc/kafka/server-2.properties

创建一个topic试试, 奢侈一把,把备份设置为3:

:kafka-topics --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
Created topic my-replicated-topic.

成了。运行 “describe topics” 命令瞧瞧:

:kafka-topics --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic: my-replicated-topic	PartitionCount: 1	ReplicationFactor: 3	Configs: 
	Topic: my-replicated-topic	Partition: 0	Leader: 2	Replicas: 2,0,1	Isr: 2,0,1

第一行给出了分区的汇总信息。每个分区行给出分区信息。

“leader” 节点是1.
“replicas” 信息,在节点2,0,1上,不管node死活,只是列出信息而已.
“isr” 工作中的复制节点的集合. 也就是活的节点的集合.

来看看一开始创建的节点:

:kafka-topics --describe --zookeeper localhost:2181 --topic test
Topic: test	PartitionCount: 1	ReplicationFactor: 1	Configs: 
	Topic: test	Partition: 0	Leader: 0	Replicas: 0	Isr: 0

毫无新意,想必你已经明了了。

发布个消息:

:kafka-console-producer --broker-list localhost:9092 --topic my-replicated-topic
>zhaolu
>zhaolu2
>zhaolu3

消费它:

:kafka-console-consumer --bootstrap-server localhost:9092 --topic my-replicated-topic --from-beginning
zhaolu
zhaolu2
zhaolu3

测试一下容错. 干掉leader,也就是Broker 2:

ps | grep server-2.properties

kill -9 pid。

Leader被切换到一个follower上节, 点 2 不会被列在isr中了,因为它死了:

:kafka-topics --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: 2,0,1	Isr: 0,1

但是,消息没丢啊,不信你试试:

:kafka-console-consumer --bootstrap-server localhost:9092 --topic my-replicated-topic --from-beginning
zhaolu
zhaolu2
zhaolu3
发布了423 篇原创文章 · 获赞 14 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/LU_ZHAO/article/details/105448849