前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开始使用Kafka

开始使用Kafka

作者头像
花落花飞去
发布2017-12-21 11:52:03
7890
发布2017-12-21 11:52:03
举报
文章被收录于专栏:大数据大数据

本译文自 Jean-Paul Azar发表在https://dzone.comGetting Started With Kafka,文中版权、图像代码等数据均归作者所有。为了本土化,翻译内容略作修改。

使用Kafka命令行了解Kafka

我们来看一个使用Kafka命令行的生产者和消费者的简单例子。

Kafka下载页面下载Kafka 0.10.2.x。 后来的版本可能会工作,但是这个例子是用0.10.2.x完成的。

我们假设你已经安装了Java SDK 1.8.x。

我们将Kafka下载文件解压缩到〜/ kafka-training /中,然后将Kafka安装文件夹重命名为kafka。请跟着一起做。

接下来,我们将运行ZooKeeper,然后运行Kafka Server / Broker。 我们将使用一些Kafka命令行实用程序来创建Kafka主题,通过生产者发送消息并从命令行使用消息。

为Kafka运行Zookeeper

Kafka依靠ZooKeeper。 为了简单起见,我们将使用一个ZooKeeper节点。

Kafka为ZooKeeper提供了一个名为zookeeper-server-start.sh的启动脚本,位于〜/ kafka-training / kafka / bin / zookeeper-server-start.sh

Kafka发行版还提供了一个ZooKeeper配置文件,它被设置为运行单个节点。

为了运行ZooKeeper,我们在kafka-training中创建这个脚本并运行它。

~/kafka-training/run-zookeeper.sh
代码语言:bash
复制
#!/usr/bin/env bash
cd ~/kafka-training
kafka/bin/zookeeper-server-start.sh \
   kafka/config/zookeeper.properties
Run run-zookeeper.sh
代码语言:bash
复制
~/kafka-training
$ ./run-zookeeper.sh

等待大约30秒左右,ZooKeeper就可以启动。

运行Kafka服务器

Kafka还为位于〜/ kafka-training / kafka / bin / kafka-server-start.sh的Kafka服务器提供了一个名为kafka-server-start.sh启动脚本

Kafka发行版还提供了一个Kafka配置文件,该文件被设置为运行Kafka单节点,并指向在localhost:2181上运行的ZooKeeper。

为了运行Kafka,我们在kafka-training中创建了这个脚本,并在另一个终端窗口中运行它。

~/kafka-training/run-kafka.sh
代码语言:bash
复制
#!/usr/bin/env bash
cd ~/kafka-training
kafka/bin/kafka-server-start.sh \
    kafka/config/server.properties
Run run-kafka.sh
代码语言:bash
复制
~/kafka-training
$ ./run-kafka.sh

等待Kafka启动大约30秒左右。

现在让我们创建我们将发送记录的主题。

创建Kafka主题

Kafka还提供一个实用程序来处理位于〜/ kafka-training / kafka / bin / kafka-topics.sh的主题kafka-topics.sh

我们将使用此工具创建一个名为my-topic的主题,复制因子为1,因为我们只有一个服务器。 我们将使用十三个分区作为我的主题,这意味着我们可以有多达13个Kafka消费者。

要运行Kafka,请在kafka-training \ lab1中创建此脚本,并在另一个终端窗口中运行它。

~/kafka-training/lab1/create-topic.sh
代码语言:bash
复制
#!/usr/bin/env bash
cd ~/kafka-training
# 创建一个主题
kafka/bin/kafka-topics.sh --create \
  --zookeeper localhost:2181 \
  --replication-factor 1 --partitions 13 \
  --topic my-topic
Run create-topic.sh
代码语言:bash
复制
~/kafka-training/lab1
$ ./create-topic.sh
Created topic "my-topic".

注意我们创建一个名称为my-topic的主题

列出主题

您可以看到Kafka使用kafka-topics.sh管理哪些主题,如下所示。

〜/ kafka-training / lab1 / list-topics.sh中创建文件。 并运行它。

~/kafka-training/lab1/list-topics.sh
代码语言:bash
复制
#!/usr/bin/env bash
cd ~/kafka-training
# 列出现有的主题
kafka/bin/kafka-topics.sh --list \
    --zookeeper localhost:2181

请注意,我们必须指定在本地端口2181上运行ZooKeeper集群。

运行 list-topics.sh
代码语言:bash
复制
~/kafka-training/lab1
$ ./list-topics.sh
__consumer_offsets
_schemas
my-example-topic
my-example-topic2
my-topic
new-employees

你可以看到主题my-topic在主题列表中。

运行Kafka Producer控制台

Kafka发行版提供了一个命令实用程序来从命令行发送消息。它启动一个终端窗口,您输入的所有内容都会发送到Kafka主题。

Kafka提供了一个实用程序 kafka-console-producer.sh~/kafka-training/kafka/bin/kafka-console-producer.sh 用于将消息发送到命令行上的主题。

创建文件 ~/kafka-training/lab1/start-producer-console.sh 并运行它。

~/kafka-training/lab1/start-producer-console.sh
代码语言:bash
复制
#!/usr/bin/env bash
cd ~/kafka-training
kafka/bin/kafka-console-producer.sh \
    --broker-list localhost:9092 \
    --topic my-topic

请注意我们指定了正在运行Kafka的节点为localhost:9092

运行 start-producer-console.sh 然后发送至少四条信息
代码语言:bash
复制
~/kafka-training/lab1
$ ./start-producer-console.sh
This is message 1
This is message 2
This is message 3
Message 4
Message 5

为了看到这些信息,我们需要运行消费者控制台。

运行Kafka使用者控制台

Kafka发行版提供了一个命令实用程序来查看来自命令行的消息。它以各种模式显示消息。

Kafka提供了kafka-console-consumer.sh 位于在 ~/kafka-training/kafka/bin/kafka-console-producer.sh 命令行上接收来自主题的消息的实用程序 。

创建文件 ~/kafka-training/lab1/start-consumer-console.sh 并运行它。

~/kafka-training/lab1/start-producer-console.sh
代码语言:bash
复制
#!/usr/bin/env bash
cd ~/kafka-training
kafka/bin/kafka-console-consumer.sh \
    --bootstrap-server localhost:9092 \
    --topic my-topic \
    --from-beginning

请注意,我们指定了localhost:9092 像之前一样运行的Kafka节点 ,但是我们也指定my-topic 从头开始 读取所有消息 --from-beginning

在另一个终端中运行start-consumer-console.sh
代码语言:bash
复制
~/kafka-training/lab1
$ ./start-consumer-console.sh
Message 4
This is message 2
This is message 1
This is message 3
bash
Message 5
Message 6
Message 7

请注意,这些消息不是按顺序排列的。这是因为我们只有一个用户,所以它正在读取所有13个分区的消息。订单只保证在一个分区内。

从命令行回顾使用Kafka

你先运行什么服务器?

你需要运行ZooKeeper比Kafka。

你用什么工具创建主题?

kafka-topics.sh

你用什么工具看题目?

kafka-topics.sh

我们用什么工具在命令行上发送消息?

kafka-console-producer.sh

我们用什么工具查看主题中的信息?

kafka-console-consumer.sh

为什么这些信息是不符合规定的?

消息在13个分区之间被分割。

我们怎么能从消费者那里得到消息?

我们只能使用一个分区或启动13个消费者。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Kafka命令行了解Kafka
    • 为Kafka运行Zookeeper
      • ~/kafka-training/run-zookeeper.sh
      • Run run-zookeeper.sh
    • 运行Kafka服务器
      • ~/kafka-training/run-kafka.sh
      • Run run-kafka.sh
      • 创建Kafka主题
      • ~/kafka-training/lab1/create-topic.sh
      • Run create-topic.sh
      • 列出主题
      • ~/kafka-training/lab1/list-topics.sh
      • 运行 list-topics.sh
      • 运行Kafka Producer控制台
      • ~/kafka-training/lab1/start-producer-console.sh
      • 运行 start-producer-console.sh 然后发送至少四条信息
      • 运行Kafka使用者控制台
      • ~/kafka-training/lab1/start-producer-console.sh
      • 在另一个终端中运行start-consumer-console.sh
    • 从命令行回顾使用Kafka
      • 你先运行什么服务器?
      • 你用什么工具创建主题?
      • 你用什么工具看题目?
      • 我们用什么工具在命令行上发送消息?
      • 我们用什么工具查看主题中的信息?
      • 为什么这些信息是不符合规定的?
      • 我们怎么能从消费者那里得到消息?
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档