侧边栏壁纸
  • 累计撰写 208 篇文章
  • 累计创建 16 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

ubuntu 20.04搭建kafka单节点和单节点多分区

Wake
2022-08-31 / 0 评论 / 0 点赞 / 684 阅读 / 1,033 字

前言:依据官方文档进行部署

Step 1: 安装java jdk 1.8+的版本

sudo apt-get install openjdk-8-jdk

image-1661948853264

Step 2: 下载代码(版本可以根据实际情况在官网进行选择,这里使用2.11-1.0.0的版本)

下载链接:https://archive.apache.org/dist/kafka/1.0.0/kafka_2.11-1.0.0.tgz

下载2.11-1.0.0版本并解压缩

tar -xzf kafka_2.11-1.0.0.tgz cd kafka_2.11-1.0.0 mv kafka_2.11-1.0.0 /usr/local/kafka

Step 3: 启动服务器

Kafka 使用 ZooKeeper 如果你还没有ZooKeeper服务器,你需要先启动一个ZooKeeper服务器。 您可以通过与kafka打包在一起的便捷脚本来快速简单地创建一个单节点ZooKeeper实例

bin/zookeeper-server-start.sh config/zookeeper.properties

有显示2181端口就成功了。不过这个是前台启动,命令结束,程序就结束了。不过没有关系,后面我们会用supervisor来进行程序管理
现在启动Kafka服务器:

bin/kafka-server-start.sh config/server.properties

这个一样是前台启动,后面用supervisor进行管理。

使用supervisor管理zookeeper和kafka进程样例:

[program:zoopkeeper] ;程序名称,终端控制时需要的标识
command=/home/wiki/kafka_2.11-1.0.0/bin/zookeeper-server-start.sh config/zookeeper.properties ; #运行程序的命令
directory= /home/wiki/kafka_2.11-1.0.0 ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/zookeeper.err.log ; 错误日志文件
stdout_logfile=/var/log/zookeeper.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT

Step 4: 设置单机多分区集群

到目前为止,我们一直在使用单个代理,这并不好玩。对 Kafka来说,单个代理只是一个大小为一的集群,除了启动更多的代理实例外,没有什么变化。 为了深入了解它,让我们把集群扩展到三个节点(仍然在本地机器上)。

> cp config/server.properties config/server-1.properties
> cp config/server.properties config/server-2.properties

现在编辑这些新文件并设置如下属性:

config/server-1.properties:
    broker.id=1
    listeners=PLAINTEXT://:9093
    log.dir=/tmp/kafka-logs-1

config/server-2.properties:
    broker.id=2
    listeners=PLAINTEXT://:9094
    log.dir=/tmp/kafka-logs-2

broker.id属性是集群中每个节点的名称,这一名称是唯一且永久的。我们必须重写端口和日志目录,因为我们在同一台机器上运行这些,我们不希望所有的代理尝试在同一个端口注册,或者覆盖彼此的数据。 我们已经建立Zookeeper和一个单节点了,现在我们只需要启动两个新的节点,在supervisor上添加2个程序

现在创建一个副本为3的新topic:

> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

Good,现在我们有一个集群,但是我们怎么才能知道那些代理在做什么呢?运行"describe topics"命令来查看:

> bin/kafka-topics.sh --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”是负责给定分区所有读写操作的节点。每个节点都是随机选择的部分分区的领导者。 “replicas”是复制分区日志的节点列表,不管这些节点是leader还是仅仅活着。 “isr”是一组“同步”replicas,是replicas列表的子集,它活着并被指到leader。 请注意,在示例中,节点1是该主题中唯一分区的领导者。

0

评论区