首页 > 其他分享 >A2--Kafka部署

A2--Kafka部署

时间:2023-04-04 13:44:06浏览次数:50  
标签:bin -- 192.168 kafka controller A2 Kafka data

一、版本信息

   
JDK 1.8
kafka 3.3.1

二、集群架构

                                                    Kafka-Kraft 架构介绍

 

左图为 Kafka 原有架构,元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理。
右图为 kraft 模式架构, 不再依赖 zookeeper 集群,而是用三台 controller 节点代替 zookeeper,
元数据保存在 controller 中, 由 controller 直接进行 Kafka 集群管理。
这样做的好处有以下几个:
⚫ Kafka 不再依赖外部框架, 而是能够独立运行;
⚫ controller 管理集群时, 不再需要从 zookeeper 中先读取数据, 集群性能上升;
⚫ 由于不依赖 zookeeper, 集群扩展时不再受到 zookeeper 读写能力限制;
⚫ controller 不再动态选举, 而是由配置文件规定。 这样我们可以有针对性的加强
controller 节点的配置, 而不是像以前一样对随机 controller 节点的高负载束手无策。

 

三、Kafka-Kraft 集群部署

1)上传 kafka 安装包并解压文件

tar -zxvf kafka_2.13-3.3.1.tgz

2)重命名文件

mkdir /data mv kafka_2.13-3.3.1 /data/kafka

3)修改/data/kafka/config/kraft/server.properties 配置文件

# kafka 的角色(controller 相当于主机、 broker 节点相当于从机,主机类似 zk 功能) process.roles=broker, controller # 节点 ID node.id=1 # controller 服务协议别名 controller.listener.names=CONTROLLER # 全 Controller 列表 [email protected]:9093,[email protected]:9093,[email protected]:9093 # 不同服务器绑定的端口 listeners=PLAINTEXT://192.168.11.204:9092,CONTROLLER://192.168.11.204:9093 # broker 服务协议别名 inter.broker.listener.name=PLAINTEXT # broker 对外暴露的地址 advertised.Listeners=PLAINTEXT://192.168.11.204:9092 # 协议别名到安全协议的映射 listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLA INTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL # kafka 数据存储目录 log.dirs=/data/kafka/data # 新增下面内容 message.max.bytes=11534336 queued.max.requests=500

4)分发 kafka文件

scp -r /data/kafka 192.168.11.205:/data scp -r /data/kafka 192.168.11.206:/data

⚫ 在 205 和 206 上 需 要 对 node.id 相 应 改 变 , 值 需 要 和controller.quorum.voters 对应。
⚫ 在 205 和 206 上 需 要 根 据 各 自 的 IP信息 , 修 改 相 应 的listeners和advertised.Listeners 地址。

5) 初始化集群数据目录

   (1) 首先生成存储目录唯一 ID。

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

  (2) 用该 ID 格式化 kafka 存储目录(三台节点)。

./bin/kafka-storage.sh format -t J7s9e8PPTKOO47PxzI39VA -c /data/kafka/config/kraft/server.properties

6) 启动 kafka 集群

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

7)停止 kafka 集群

./bin/kafka-server-stop.sh

 

四、添加系统服务

 1)创建系统服务文件并写入内容 

cat /lib/systemd/system/kafka.service << EOF [Unit] Description=Kafka Service After=network.target   [Service] Type=simple LimitNOFILE=65535 Environment="PATH=/java/jdk1.8.0_161/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin" ExecStart=/opt/kafka_2.13-3.3.1/bin/kafka-server-start.sh /opt/kafka_2.13-3.3.1/config/kraft/server.properties ExecStop=/opt/kafka_2.13-3.3.1/bin/kafka-server-stop.sh Restart=always   [Install] WantedBy=multi-user.target EOF

2)启动服务

systemctl daemon-reload systemctl start kafka.service systemctl enable kafka.service

3)查看服务

systemctl status kafka.service

标签:bin,--,192.168,kafka,controller,A2,Kafka,data
From: https://www.cnblogs.com/jerry-0910/p/17286126.html

相关文章

  • 如何编写高质量的 JS 函数(2) -- 命名/注释/鲁棒篇
    vivo互联网技术微信公众号 作者:杨昆上篇《如何编写高质量的JS函数(1)--敲山震虎篇》介绍了函数的执行机制,此篇将会从函数的命名、注释和鲁棒性方面,阐述如何编写高质量的JS函数。(一)函数命名一、目前前端的函数命名存在什么问题从上图可以知道,命名和缓存是计算机科学中的......
  • Wiki.js配置LDAP认证
    安装好wikijs之后,可以进行进一步的详细配置.这里介绍LDAP认证的配置.在管理->身份验证->添加策略->选择LDAP/AD,如下:接下来进行详细配置:显示名称:按需修改是否启用:是LDAPURL:格式为:ldap://serverhost:389orldaps://serverhost:636Admin......
  • 深入理解 Java 中 SPI 机制
    vivo互联网技术微信公众号 作者:姜柱SPI(ServiceProviderInterface),是JDK内置的一种服务提供发现机制,本文由浅入深地介绍了JavaSPI机制。一、简介SPI(ServiceProviderInterface),是JDK内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如j......
  • 函数式编程杂谈
    vivo互联网技术微信公众号作者:张文博比起命令式编程,函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断演进,逐层推导出复杂的运算。本文通过函数式编程的一些趣味用法来阐述学习函数式编程的奇妙之处。一、编程范式综述编程是为了解决问......
  • Tomcat 应用中并行流带来的类加载问题
    vivo互联网技术微信公众号 作者:肖铭轩、王道环随着Java8的不断流行,越来越多的开发人员使用并行流(parallel)这一特性提升代码执行效率。但是,作者发现在Tomcat容器中使用并行流会出现动态加载类失败的情况,通过对比Tomcat多个版本的源码,结合并行流和JVM类加载机制的原理,成......
  • 深入理解 web 协议(一)- http 包体传输
    vivo互联网技术微信公众号 作者:吴越开坑这个系列的原因,主要是在大前端学习的过程中遇到了不少跟web协议有关的问题,之前对这一块的了解仅限于用charles抓个包,基本功欠缺。强迫症发作的我决定这一次彻底将web协议搞懂搞透,如果你遇到了和我一样的问题,例如对http的了解,仅限于charl......
  • 为什么 JavaScript 中 0.1 0.2 不等于 0.3 ?
    vivo互联网技术微信公众号 作者:刘洋在js中进行数学的运算时,会出现0.1+0.2=0.300000000000000004的结果,一开始认为是浮点数的二进制存储导致的精度问题,但这似乎不能很好的解释为什么在同样的存储方式下0.3+0.4=0.7可以得到正确的结果。本文主要通过浮点数的二进制存储及运算,和......
  • 浅谈Kotlin中的函数
    vivo互联网技术微信公众号 作者:连凌能Kotlin,已经被Android官方宣布 kotlinfirst 的存在,去翻Android官方文档的时候,发现提供的示例代码已经变成了Kotlin。Kotlin的务实作风,提供了很多特性帮助开发者减少冗余代码的编写,可以提高效率,也能减少异常。本文简单谈下Kotlin中的函......
  • MySQL 的 crash-safe 原理解析
    vivo互联网技术微信公众号 作者:xieweipengMySQL作为当下最流行的开源关系型数据库,有一个很关键和基本的能力,就是必须能够保证数据不会丢。那么在这个能力背后,MySQL是如何设计才能保证不管在什么时间崩溃,恢复后都能保证数据不会丢呢?有哪些关键技术支撑了这个能力?本文将为我们一......
  • Glide生命周期原理
    vivo互联网技术微信公众号 作者:连凌能AndroidApp中图片的展示是很基本也很重要的一个功能,在Android平台上有很多的图片加载解决方案,但是官方认可的是Glide。AndroidApp的页面是有生命周期的,Glide比较好的一个功能就是具有生命周期管理功能,能够根据页面和APP的生命周期来管理......