kafka 启动_在 Mac 跑起 Kafka

d71c17bf0e309924b13b05191162d41e.png
参考资料
Kafka 中文文档
Kafka的安装和简单实例测试
kafka-python

1 安装

Kafka 中文文档中主要介绍了 Linux/Windows 系统下的 Kafka 配置,为了在本地 Mac 系统下跑起一个 demo,本文简单介绍如何在 Mac 中跑起 Kafka。

执行 brew install kafka,由于 Kafka 需要依赖 ZooKeeper,所有在 brew 过程中,会把 Kafka 的其他依赖一起安装到 /usr/local/Cellar 目录下。

ba501620eda0521f01001f89197d1fef.png

2 启动

可以到安装目录下的 bin 来看一下预定的一些启动脚本。

a87e2937b9f2b168da52d087de449ceb.png

在启动 Kafka 之前需要先启动 ZooKeeper,看看 ZK 的启动命令里面有什么内容。

#!/bin/bash
 JAVA_HOME="$(/usr/libexec/java_home --version 1.8)" exec "/usr/local/Cellar/kafka/0.11.0.1/libexec/bin/zookeeper-server-start.sh" "$@"

可以看出,实际上其启动命令是一个调用的 bash 脚本。感兴趣的话可以进一步查看该脚本的详细内容。运行该启动命令,会有以下输出,提示我们需要一份 ZK 的配置文件。

➜  bin  zookeeper-server-start
USAGE: /usr/local/Cellar/kafka/0.11.0.1/libexec/bin/zookeeper-server-start.sh [-daemon] zookeeper.properties

那么这个配置文件可以在刚刚 brew 的时候安装的 ZK 依赖的配置目录下查找,具体如下:

0b3c69cba0b410101c20d65362d5cf0a.png

那么完整的 ZK 启动命令应该是这样的 zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties,注意后面的为 ZK 配置文件的绝对路径。现在 ZK 应该已经成功启动了。

209fe3def05d1a5117418b6a1487244e.png

启动 Kafka 集群的过程与 ZK 相似,可以到对应配置文件目录中启动。

33eeaef38a2b32c27bc2850286f4555e.png

topic 是发布消息发布的 category 类别,以单节点的配置创建了一个叫 runzhliutopic

➜  workspace  kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic runzhliu
Created topic "runzhliu".

另外可以用 list 列出所有创建的 topics,来查看刚才创建的主题是否存在。

➜  workspace  kafka-topics --list --zookeeper localhost:2181
dblab
my_favorite_topic
runzhliu

然后我们用 producer 生产一些消息,hello oscar

➜  workspace  kafka-console-producer --broker-list localhost:9092 --topic runzhliu
>hello
>oscar

最后用 consumer 来消费这些消息。

➜  workspace  kafka-console-consumer --zookeeper localhost:2181 --topic runzhliu --from-beginning

Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
hello
oscar

3 Python 客户端

因为使用脚本来生产、消费消息比较麻烦,而在生产中一般都是用封装好的客户端来进行操作,这里选择用 Python 的客户端 kafka-python。

创建一个目录来放置 Python 脚本如下:

f2940250686109c2ee045d006d382903.png

按照官方 Demo,先启动一个消费者进程如下:

d7a1bf8d2db68e70771c6c730b92e05e.png

运行成功之后可以选择在用 Shell 脚本来对 runzhliu 主题来产生新的消息,这样在消费者的日志中就可以看到消费的消息,此处我们还是用 Python 客户端来产生一些消息。

a6eebcd8301bc70795c0f4b4b8826952.png

以下是向主题发送三条消息。然后消费者日志会显示:

76255425c0ddf4242a430df60b8002b2.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值