Kafka 部署 不使用zookeeper

177次阅读
没有评论

共计 3933 个字符,预计需要花费 10 分钟才能阅读完成。

从 https://kafka.apache.org/downloads 下载 kafka 2.8.0

wget https://apachemirror.wuchna.com/kafka/2.8.0/kafka_2.12-2.8.0.tgz

解压:

tar xzf  kafka_2.12-2.8.0.tgz

打开kafka目录,所有 kafka 命令都应在 kafka 文件夹中运行

cd kafka_2.12-2.8.0

在不适用zookeeper的情况下,在config/kraft server.properties

从 server.properties 创建 3 个新文件。这是因为我们将创建一个 3 节点群集

cd config/kraft
cp server.properties server1.properties
cp server.properties server2.properties
cp server.properties server3.properties

在 server1.properties 中,修改以下属性。请保持其他属性不变。

node.id=1

process.roles=broker,controller

inter.broker.listener.name=PLAINTEXT

controller.listener.names=CONTROLLER

listeners=PLAINTEXT://:9092,CONTROLLER://:19092

log.dirs=/tmp/server1/kraft-combined-logs

listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094

 

node.id:这将充当群集中的节点 ID。这将有助于我们确定这是哪个经纪人。它还将帮助我们确定这是哪个牛皮纸控制器节点。

process.roles:节点可以充当代理和/或控制器。在这里,我们指示此节点既可以是 kafka 代理,也可以是牛皮纸控制器节点。

inter.broker.listener.name:此处代理侦听器名称设置为纯文本

controller.listener.names:此处的控制器侦听器名称设置为 CONTROLLER

侦听器:在这里,我们指示代理将使用端口 9092,牛皮纸控制器将使用端口 19092

log.dirs:这是 kafka 存储数据的日志目录

listener.security.protocol.map:此处添加了连接安全详细信息

controller.quorum.voters:这用于指示所有可用的牛皮纸控制器。在这里,我们指示我们将在端口 19092、19093 和 19094 上运行 3 个牛皮纸控制器节点

对于 server2.属性,请修改以下属性。请保持其他属性不变。

node.id=2

process.roles=broker,controller

controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094

listeners=PLAINTEXT://:9093,CONTROLLER://:19093

inter.broker.listener.name=PLAINTEXT

controller.listener.names=CONTROLLER

log.dirs=/tmp/server2/kraft-combined-logs

listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

在服务器 2 中,代理端口为 9093,控制器端口为 19093。此外,log.dirs也不同

对于 server3.属性,请修改以下属性。请保持其他属性不变。

node.id=3

process.roles=broker,controller

controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094

listeners=PLAINTEXT://:9094,CONTROLLER://:19094

inter.broker.listener.name=PLAINTEXT

controller.listener.names=CONTROLLER

log.dirs=/tmp/server3/kraft-combined-logs

listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

在服务器 3 中,代理端口为 9094,控制器端口为 19094。此外,log.dirs也不同

Kafka 集群 ID 创建和日志目录设置

首先,我们需要在启动服务器之前创建 kafka 集群 ID。这可以使用以下命令完成:

./bin/kafka-storage.sh random-uuid

记下运行上述语句后出现的 uuid。在我的情况下,我得到了以下uuid

./bin/kafka-storage.sh random-uuid
9dJzdGvfTPaCY4e8klXaDQ

接下来,我们需要格式化所有存储目录。这基本上是我们放在log.dirs属性中的目录。

这可以通过以下命令完成

./bin/kafka-storage.sh format -t <uuid> -c <server_config_location>

替换为您在上一步中获得的 uuid。替换为服务器属性文件<uuid><server_config_location>

这是运行 3 个命令时得到的结果

$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server1.properties
Formatting /tmp/server1/kraft-combined-logs
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server2.properties
Formatting /tmp/server2/kraft-combined-logs
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server3.properties
Formatting /tmp/server3/kraft-combined-logs

启动 kafka 服务器

可以使用以下命令在守护程序模式下启动 kafka 服务器:

首先设置堆属性

export KAFKA_HEAP_OPTS="-Xmx200M –Xms100M"

在这里,我们给出了一个非常小的最大堆200M,因为我们在一台本地机器上运行所有服务器。如果您有更大的服务器,则可以提供1GB或以上的堆大小。

启动服务器 1:

./bin/kafka-server-start.sh -daemon ./config/kraft/server1.properties

启动服务器 2/3类似 

 

创建卡夫卡主题

让我们在此集群中创建一个主题牛皮纸测试

可以使用以下命令创建该主题:

./bin/kafka-topics.sh --create --topic kraft-test --partitions 3 --replication-factor 3 --bootstrap-server localhost:9092

我们正在创建一个包含 3 个分区和 3 个副本的主题,因为我们有 3 个节点。

我们可以使用以下命令列出集群中存在的主题:

bin/kafka-topics.sh --bootstrap-server localhost:9093 --list

运行上述命令可得到以下结果

$ bin/kafka-topics.sh --bootstrap-server localhost:9093 --list
kraft-test

我们可以使用以下命令描述集群中存在的主题:

bin/kafka-topics.sh --bootstrap-server localhost:9093 --describe --topic kraft-test

从 kafka 生成和使用数据

使用以下命令在终端中启动 kafka 生产者

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kraft-test

在另一个终端中,使用以下命令启动 kafka 使用者

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kraft-test

 

 

 

source:如何在没有动物园管理员的情况下轻松安装卡夫卡|阿迪亚的博客 (adityasridhar.com)

正文完
 
admin
版权声明:本站原创文章,由 admin 2022-03-08发表,共计3933字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码