当前位置: 首页 > article >正文

OpenEuler 22.03 不依赖zookeeper安装 kafka 3.3.2集群

零:规划

        本次计划安装三台OpenEuler 22.03 版本操作系统的服务器,用于搭建 kafka和flink 集群。因为从kafka 2.8 版本以后开始不依赖 zookeeper ,同时考虑到需要找一个发布时间早于  flink 1.17 的kafka 版本且应尽量稳定,综合考虑下选择了 kafka 3.3.2。

服务器名IP地址作用其他应用
flink01192.168.159.133kafkajdk11、flink-1.17.2
flink02192.168.159.134kafkajdk11、flink-1.17.2
flink03192.168.159.135kafkajdk11、flink-1.17.2

一、准备工作

        关于服务器安装与免密、防火墙设置等操作可以参考上一篇 flink集群的搭建 。kafka可以从 中文官网 下载到kafka 3.3.2 版本,需要注意的是,每个版本的 kafka 都会用 scala 2.12和2.13,如果后续的使用不涉及 scala 的部分,那么下载哪个scala版本的 kafka都无所谓。

        另外,kafka 的常用端口包括9092和9093 两个,前者用于接收集群producer和consumer等的通信,后者用于集群内部的管理和监控。

二、安装

       2.1、登录到 192.168.159.133 服务器,执行 如下命令下载安装包并解压到 /usr/local/路径下

## 进入 /usr/local/
[root@flink01 local]# cd /usr/local/

## 下载
[root@flink01 local]# wget https://archive.apache.org/dist/kafka/3.3.2/kafka_2.13-3.3.2.tgz

## 解压
[root@flink01 local]# tar -vxf kafka_2.13-3.3.2.tgz

## 进入目录、备份配置文件并修改
[root@flink01 local]# cd /usr/local/kafka_2.12-3.3.2/config/kraft

[root@flink01 local]# cp -rf server.properties server.properties_20241222bak

[root@flink01 local]# vim server.properties

        server.properties 文件需要修改的配置项如下面所示。 

## 需要关注的配置项主要包括以下几个
## 为不同kafka 服务分配不同的 id值,133服务器作为第一个节点,其他服务id随ip的递增而增加
node.id=1

## 需要确定当前 kafka 服务的通信端口和监控管理端口,这里使用的是kafka默认的 9092和9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093

## 接入集群的kafka 服务的ip 和 编号。端口号使用监控和管理端口  9093
controller.quorum.voters=1@192.168.159.133:9093,2@192.168.159.134:9093,3@192.168.159.135:9093

## 设定当前服务的接收生产者与消费者的ip和端口。
advertised.listeners=PLAINTEXT://192.168.159.133:9092

        2.2、修改 133 kafka 服务器的配置文件后,将kafka 程序目录发送到另外两个服务器

## 将kafka文件夹分发到其他服务器
[root@flink01 local]# scp kafka_2.12-3.3.2 192.168.159.134:/usr/local/

## 其他服务器上的kafka 仅需修改  server.properties  文件中的以下配置项即可,其他项保持不变

## id序号逐渐递增即可
node.id=1

## 这一项修改成当前服务器的 ip即可,端口不必改变
advertised.listeners=PLAINTEXT://192.168.159.134:9092

        2.3、创建 kafka集群 UUID,并启动集群中所有 kafka 服务

## 登入kafka 的bin目录
[root@flink03 bin]# cd /usr/local/kafka_2.12-3.3.2/bin

## 生成 集群 uuid
[root@flink01 bin]# ./kafka-storage.sh random-uuid

## 使用生成的 uuid   8xXSdiD0RdKhq-wvOpApcg  格式化集群中所有kafka服务
## 注意,要格式化集群中所有服务!
[root@flink01 bin]# ./kafka-storage.sh format -t 8xXSdiD0RdKhq-wvOpApcg -c ../config/kraft/server.properties

## 分别启动集群中三台服务器上的 kafka 服务
[root@flink01 bin]# ./kafka-server-start.sh -daemon ../config/kraft/server.properties

        2.4、创建topic 。

        事实上,在集群中任何一个 ip 的kafka下创建 topic后,其他kafka服务都能用任意一个ip 访问该名称的 topic,请自行尝试,在此不做演示。

[root@flink03 bin]#  ./kafka-topics.sh --bootstrap-server 192.168.159.135:9092 --create --topic zgyKraft --partitions 1 --replication-factor 1

        2.5、启动 consumer 和 producer,并发送消息

## 这里在第二台服务器上,启动第一台服务器的 consumer
[root@flink02 bin]# ./kafka-console-consumer.sh --bootstrap-server 192.168.159.133:9092 --topic zgyKraft

## 这里在第一台服务器上,启动第三台服务器的 producer
[root@flink01 bin]# ./kafka-console-producer.sh --broker-list 192.168.159.135:9092 --topic zgyKraft

## 然后在producer 上发送消息后,所有同名 topic 下的消费者都可以收到了。

三、附录

        附上一些常用的 kafka命令

## 查看主题
./kafka-topics.sh --bootstrap-server 192.168.159.133:9092 --list

## 查看主题明细
./kafka-topics.sh --bootstrap-server 192.168.159.133:9092 --describe <topic-id>

## 创建主题,分区 partition 为5,副本 replication-factor 为2,broker 数应 大于等于 副本数。(broker 不必在创建 topic 时显示指定)
./kafka-topics.sh --bootstrap-server 192.168.159.133:9092 --create --topic zgyTopic --partitions 5 --replication-factor 2

## 删除主题
./kafka-topics.sh --bootstrap-server 192.168.159.133:9092 --delete --topic <topic-id>

## 查看消费者列表--list
./kafka-consumer-groups.sh --bootstrap-server 192.168.159.133:9092 --list

## 查看指定消费组详情
./kafka-consumer-groups.sh --bootstrap-server 192.168.159.133:9092 --describe --group <group-id>

## 删除特定group
kafka-consumer-groups.sh --bootstrap-server 192.168.159.133:9092 --delete --group <group-id>

## 打开一个生产者
./kafka-console-producer.sh --bootstrap-server 192.168.159.133:9092 --topic zgyTopic

## 打开一个消费者
./kafka-console-consumer.sh --bootstrap-server 192.168.159.133:9092 --topic zgyTopic --from-beginning 

## 查看所有消费组详情--all-groups
./kafka-consumer-groups.sh --bootstrap-server 192.168.159.133:9092 --describe --all-groups

查询消费者成员信息--members

## 所有消费组成员信息
./kafka-consumer-groups.sh --bootstrap-server 192.168.159.133:9092 --describe --all-groups --members

## 指定消费组成员信息
./kafka-consumer-groups.sh --bootstrap-server 192.168.159.133:9092 --describe --members --group zgyConsumerGroup

## 修改到最新offset
./kafka-consumer-groups.sh --bootstrap-server 192.168.159.133:9092 --group zgyConsumerGroup --reset-offsets --topic mytopic --to-latest --execute

## 重设位移位置
./kafka-consumer-groups.sh --bootstrap-server 192.168.159.133:9092 --group zgyConsumerGroup --reset-offsets --topic mytopic --to-offset 100 --execute


http://www.kler.cn/a/448698.html

相关文章:

  • Set集合进行!contains判断IDEA提示Unnecessary ‘contains()‘ check
  • leetcode之hot100---240搜索二维矩阵II(C++)
  • redis数据转移
  • Liveweb视频融合共享平台在果园农场等项目中的视频监控系统搭建方案
  • 高效准确的PDF解析工具,赋能企业非结构化数据治理
  • OpenHarmony-6.IPC/RPC组件
  • 基于微信小程序的短视频系统(SpringBoot)+文档
  • [c++进阶(三)]单例模式及特殊类的设计
  • [python] 基于matplotlib实现雷达图的绘制
  • springboot连接mongo性能优化参数配置
  • 智能汽车自动驾驶发展趋
  • AI 视频:初识 Pika 2.0,基本使用攻略
  • 探索Python的pytest库:简化单元测试的艺术
  • 使用 Vite 和 Redux Toolkit 创建 React 项目
  • YOLOv9-0.1部分代码阅读笔记-autobatch.py
  • ubuntu安装Goland
  • 1-Gin介绍与环境搭建 --[Gin 框架入门精讲与实战案例]
  • 使用Python实现基于AR的教育应用:打破课堂的墙壁
  • AGV搬运机器人推动仓储物流行业向自动化转型升级
  • 医疗 UI 设计如何精准传达复杂的健康数据?
  • 第六篇:HTTP 的未来,会变成啥样?
  • 【记录50】uniapp安装uview插件,样式引入失败分析及解决
  • 王佩丰24节Excel学习笔记——第十六讲:简单文本函数
  • 【设计模式探索——智能遍历:如何用迭代器模式优化AI数据处理】
  • 汇总贴:cocos creator
  • ECharts关系图-关系图11,附视频讲解与代码下载