Kafka 入门(三)

news/2024/11/20 7:23:45/

Kafka 入门(三)

IPhostname
192.168.79.177master01
192.168.79.180worker01
192.168.79.181worker02

2种集群模式

  1. Zookeeper
  2. Kraft

zookeeper集群配置

config/zookeeper.properties

三台服务器 master01, worker01, worker02 增加如下内容

note: master01, worker01, worker02 是服务器别名非 master01在这里一定是master节点

# ...
dataDir=/home/tester/app/kafka/zkdata
# ...
admin.enableServer=false
# admin.serverPort=8080server.1=192.168.79.177:2999:3999
server.2=192.168.79.180:2999:3999
server.3=192.168.79.181:2999:3999

设置myid

master01

$ mkdir -p /home/tester/app/kafka/zkdata/
$ echo 1 > /home/tester/app/kafka/zkdata/myid

worker01

$ mkdir -p /home/tester/app/kafka/zkdata/
$ echo 2 > /home/tester/app/kafka/zkdata/myid

worker02

$ mkdir -p /home/tester/app/kafka/zkdata/
$ echo 3 > /home/tester/app/kafka/zkdata/myid

启动zookeeper

master01

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

worker01

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

worker02

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

验证 是否成功

在master01上创建节点

$ bin/zookeeper-shell.sh 192.168.79.177:2181
ls /
[zookeeper]
create /new
ls /
[new, zookeeper]

在192.168.79.180上登入192.168.79.181查看节点

$ bin/zookeeper-shell.sh 192.168.79.181:2181
ls /
[new, zookeeper]

更多具体设置及命令 Zookeeper集群

kafka server 配置

master01 config/server.properties

broker.id=0
# ...
log.dirs=/home/tester/kafka/kafka-logs
# ...
num.partitions=10
# ...
zookeeper.connect=192.168.79.177:2181,192.168.79.180:2181,192.168.79.181:2181
# ...

worker01 config/server.properties

broker.id=1
# ...
log.dirs=/home/tester/kafka/kafka-logs
# ...
num.partitions=10
# ...
zookeeper.connect=192.168.79.177:2181,192.168.79.180:2181,192.168.79.181:2181
# ...

worker02 config/server.properties

broker.id=2
# ...
log.dirs=/home/tester/kafka/kafka-logs
# ...
num.partitions=10
# ...
zookeeper.connect=192.168.79.177:2181,192.168.79.180:2181,192.168.79.181:2181
# ...

Kafka kraft 集群

kraft/server.properties

master01 更新配置

process.roles=broker,controller
node.id=1
# ...
controller.quorum.voters=1@192.168.79.177:9093,2@192.168.79.180:9093,3@192.168.79.181:9093
# ...
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
# ...
advertised.listeners=PLAINTEXT://:9092
# ...
log.dirs=/home/tester/kafka/kraft-combined-logs
# ...
num.partitions=10

worker01 更新配置

process.roles=broker,controller
node.id=2
# ...
controller.quorum.voters=1@192.168.79.177:9093,2@192.168.79.180:9093,3@192.168.79.181:9093
# ...
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
# ...
advertised.listeners=PLAINTEXT://:9092
# ...
log.dirs=/home/tester/kafka/kraft-combined-logs
# ...
num.partitions=10

worker02 更新配置

process.roles=broker,controller
node.id=3
# ...
controller.quorum.voters=1@192.168.79.177:9093,2@192.168.79.180:9093,3@192.168.79.181:9093
# ...
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
# ...
advertised.listeners=PLAINTEXT://:9092
# ...
log.dirs=/home/tester/kafka/kraft-combined-logs
# ...
num.partitions=10

master01 启动

$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
$ echo $KAFKA_CLUSTER_ID
ViRIykyGQUqQfBDvMUoFFQ
$ echo 'ViRIykyGQUqQfBDvMUoFFQ' > /home/tester/app/kafka/current_kafka_cid
$ rm -rf /home/tester/kafka/kafka-logs/* /home/tester/kafka/zkdata/version-2/* /home/tester/kafka/kraft-combined-logs/*
$ bin/kafka-storage.sh format -t ViRIykyGQUqQfBDvMUoFFQ -c config/kraft/server.properties

worker01 启动

$ rm -rf /home/tester/kafka/kafka-logs/* /home/tester/kafka/zkdata/version-2/* /home/tester/kafka/kraft-combined-logs/*
$ bin/kafka-storage.sh format -t ViRIykyGQUqQfBDvMUoFFQ -c config/kraft/server.properties

worker02 启动

$ rm -rf /home/tester/kafka/kafka-logs/* /home/tester/kafka/zkdata/version-2/* /home/tester/kafka/kraft-combined-logs/*
$ bin/kafka-storage.sh format -t ViRIykyGQUqQfBDvMUoFFQ -c config/kraft/server.properties

验证

参考 Kafka 入门(二)
修改 consumer 服务的application.properties文件

spring.kafka.bootstrap-servers=192.168.79.177:9092,192.168.79.180:9092,192.168.79.181:9092

修改 producer 服务的application.properties文件

spring.kafka.bootstrap-servers=192.168.79.177:9092,192.168.79.180:9092,192.168.79.181:9092

运行 producer, consumer 服务验证


http://www.ppmy.cn/news/37718.html

相关文章

css处理图片失效显示错误兜底图代码

简言 今天从张老师那里学到了图片加载错误后显示兜底图和提示文字的用法。用vue实现下图片组件。 代码 思路&#xff1a; 图片加载失败&#xff0c;添加错误css类,添加伪类填充错误图片和alt提示信息。 <template><img:class"{ is__error: isOnloadError }&q…

工业相机成像原理

镜头的成像原理主要是因为小孔成像&#xff0c;作为机器视觉系统中的重要组件&#xff0c;镜头和工业相机同样重要&#xff0c;但是工业相机的成像原理是什么呢&#xff1f;我会在这一篇中诉说清楚。 01 CCD和CMOS 从感光芯片的角度来分&#xff0c;有CCD相机和CMOS相机&…

阿里云5、6代云服务器实例免费升级至第7代(不限次数)

简介&#xff1a; 阿里云推出云服务器实例免费升级至第7代优惠活动&#xff0c;第5、&#xff16;代云服务器&#xff0c;可享受实例部分免费升级至第7代实例&#xff0c;让你的云服务器拥有更高的安全、存储、网络等性能。 阿里云服务器升级有优惠吗&#xff1f;当然是有的&am…

【0181】PG内核通过pg_hba.conf完成客户端认证(2)

文章目录 1. 回顾2. 读取文件所有token2.1 每行内容最大长度限制2.2 移除缓冲区buf中的换行符2.3 解析rawline中所有的字段2.3.1 从一行中标记HBA字段2.3.1.1 从*lineptr获取一个token2.3.1.1.1 忽略token前的所有空格和逗号2.3.1.1.2 token中不返回终止逗号2.3.1.1.3 取消toke…

android:手搓一个即时消息聊天框(包含消息记录)

先看一下效果 1.后端 要实现这个&#xff0c;先说一下后端要实现的接口 1.创建会话id 传入“发送id”和“接收id”给服务端&#xff0c;服务端去创建“会话id” 比如 get请求&#xff1a;http://xxxx:8110/picasso/createSession?fromUserId1&toUserId2 返回seesionId…

Python 自动化指南(繁琐工作自动化)第二版:十一、调试

原文&#xff1a;https://automatetheboringstuff.com/2e/chapter11/ 既然你已经知道了足够多的知识来编写更复杂的程序&#xff0c;你可能会开始发现其中不那么简单的错误。这一章介绍了一些工具和技术&#xff0c;用于查找程序中错误的根本原因&#xff0c;帮助您更快、更省力…

2021年05月软件设计师全套真题精讲

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 1. 在 CPU 中&#xff0c;用&#xff08; &#xff09;给出将要执行的下一条指令在内存中的地址。 A.程序计数器 B.指令寄存器 C.主存地址寄存器 D.状态条件寄存…

vue按需引入

在main.js中 import Vue.use&#xff08;&#xff09;中 写入组件名称 Pagination, Dialog, Autocomplete, Dropdown, DropdownMenu, DropdownItem, Menu, Submenu, MenuItem, MenuItemGroup, Input, InputNumber, Radio, RadioGroup, RadioButton, Checkbox, Checkb…