[转帖]【Kafka】(二)Kafka去Zookeeper化,kraft模式搭建

kafka,zookeeper,kraft,模式,搭建 · 浏览次数 : 0

小编点评

**简介** 由于 zookeeper 的瓶颈,Kafka 团队提出了去 zookeeper 化的概念,并在 2.8 版本之后版本中包含了 **kraft** 模式,也就是不需要使用 zookeeper 了。目前这种模式还不成熟,企业中使用 Kafka 还是推荐使用 zk+kafka 的方式,否则可能会出现意想不到的错误。 **环境准备** 准备 2 台 CentOS虚拟机以及 kafka3.0 的压缩包即可。 **开始搭建** 1. 修改配置文件 `server.properties`: - 在 `# 说明本台kafka 的角色,是broker还是controller,controller相当于之前的zkprocess.roles=broker,controller` 的参数中设置 `node.id=1`。 - 在 `# 集群中的唯一ID,不同机器的kafka这里要设置成不一样的node.id=2`。 2. 生成集群唯一ID: - 利用 `kafka-storage.sh` 生成集群唯一ID:`/usr/local/kafka2/bin/kafka-storage.sh random-uuid` 3. 启动 Kafka 集群: - 使用 `kafka-server-start.sh` 启动 Kafka 集群,并指定 `server.properties` 文件路径。 4. 验证 Kafka 安装成功: - 新建一个主题 `first`:`/usr/local/kafka2/bin/kafka-storage.sh format -t e32o2jB4SwGFQYn18rauDA -c /usr/local/kafka2/config/kraft/server.properties` - 从第一台 broker 中创建一个主题 `first`:`kafka-create-topic --bootstrap-server 192.168.181.128:9092 first` 5. 验证集群搭建成功: - 向 `first` 主题中添加消息:`kafka-publish --bootstrap-server 192.168.181.128:9092 message-1` - 访问 `first` 主题,发现它包含了添加的メッセージ。

正文

1.简介

由于zookeeper慢慢的成了kafka的瓶颈,kafka提出了去zookeeper化的概念,并在2.8版本之后版本都包含了kraft模式,也就是不需要使用zookeeper了,目前这种模式还不成熟,企业中使用kafka还是推荐使用zk+kafka的方式,否则可能会出现意想不到的错误。

2.环境准备

准备2台centos虚拟机以及kafka3.0的压缩包即可,上一节中,已经介绍了如何下载以及如何安装centos虚拟机了。

3.开始搭建

3.1 修改配置文件

解压kafka3.0到/usr/local下,我这里将它更名为kafka2
在这里插入图片描述
这里修改的配置文件和之前的配置文件就有一点不同了,需要修改kafka目录下config/kraft/server.properties文件
在这里插入图片描述
编辑server.properties文件

vi server.properties

    需要修改的参数有:

    # 说明本台kafka的角色,是broker还是controller,controller相当于之前的zk
    process.roles=broker,controller
    # 集群中的唯一ID,不同机器的kafka这里要设置成不一样的
    node.id=1
    # 集群配置,格式为nodeId@IP:端口,我这里用2台做集群,中间用逗号分隔
    controller.quorum.voters=1@192.168.181.128:9093,2@192.168.181.129:9093
    listeners=PLAINTEXT://192.168.181.128:9092,CONTROLLER://192.168.181.128:9093
    # kakfa机器注册的IP
    advertised.listeners=PLAINTEXT://192.168.181.128:9092
    # 数据存储的地址
    log.dirs=/usr/local/kafka2/data
    

      保存退出,将配置好的kafka发送到另一台机器上

      scp -r /usr/local/kafka2 root@192.168.181.129:/usr/local/
      

        将第二台机器的node.id还有注册地址改一下

        node.id=2
        listeners=PLAINTEXT://192.168.181.129:9092,CONTROLLER://192.168.181.129:9093
        advertised.listeners=PLAINTEXT://192.168.181.129:9092
        

          先前我们已经把9092端口打开了,这里我们将9093端口也打开一下,用作kafka之间的通讯

          firewall-cmd --zone=public --add-port=9093/tcp --permanent
          

            3.2 生成集群唯一ID

            kraft模式需要我们生成集群的唯一ID,用来配置集群环境,kafka给我们提供了一个工具kafka-storage.sh

            /usr/local/kafka2/bin/kafka-storage.sh random-uuid
            

              在这里插入图片描述
              利用该UUID配置一下我们的集群环境(注意每个kafka都要运行一下,要使用这同一个UUID)

              /usr/local/kafka2/bin/kafka-storage.sh format -t e32o2jB4SwGFQYn18rauDA -c /usr/local/kafka2/config/kraft/server.properties 
              

                可以看到,这么做的目的,是将我们的UUID写到配置文件当中
                在这里插入图片描述

                3.3 启动kafka集群

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

                  3.4 验证一下kafka有没有搭建成功

                  往第一台borker里面新建一个主题first,发现第二台机器也可以看到这个主题,集群搭建成功
                  在这里插入图片描述

                  文章知识点与官方知识档案匹配,可进一步学习相关知识
                  云原生入门技能树首页概览13439 人正在系统学习中

                  与[转帖]【Kafka】(二)Kafka去Zookeeper化,kraft模式搭建相似的内容:

                  [转帖]【Kafka】(二)Kafka去Zookeeper化,kraft模式搭建

                  1.简介 由于zookeeper慢慢的成了kafka的瓶颈,kafka提出了去zookeeper化的概念,并在2.8版本之后版本都包含了kraft模式,也就是不需要使用zookeeper了,目前这种模式还不成熟,企业中使用kafka还是推荐使用zk+kafka的方式,否则可能会出现意想不到的错误。

                  [转帖]Day64_Kafka(二)

                  第二讲 Kafka架构 课程大纲 课程内容 学习效果 掌握目标 Kafka架构 Kafka就 掌握 Kafka ack Exactly once Kafka log Kafka log 掌握 Kafka log合并 Flume消息flush和Retention Kafka Leader Electi

                  [转帖]Kafka 基本概念大全

                  https://my.oschina.net/jiagoushi/blog/5600943 下面给出 Kafka 一些重要概念,让大家对 Kafka 有个整体的认识和感知,后面还会详细的解析每一个概念的作用以及更深入的原理 ・Producer:消息生产者,向 Kafka Broker 发消息的客户端

                  [转帖]Kafka 与RocketMQ 落盘机制比较

                  https://www.jianshu.com/p/fd50befccfdd 引言 前几期的评测中,我们对比了Kafka和RocketMQ的吞吐量和稳定性,本期我们要引入一个新的评测标准——软件可靠性。 何为“可靠性”? 先看下面这种情况:有A,B两辆越野汽车,在城市的周边地区均能很好应对泥泞的路况

                  [转帖]Kafka关键参数设置

                  https://www.cnblogs.com/wwcom123/p/11181680.html 生产环境中使用Kafka,参数调优非常重要,而Kafka参数众多,我们的java的Configuration代码中,经常设置的参数如下: Properties props = new Propertie

                  [转帖]kafka压测多维度分析实战

                  设置虚拟机不同的带宽来进行模拟压测 kafka数据压测 1、公司生产kafka集群硬盘:单台500G、共3台、日志保留7天。 1.1 版本:1.1.0 2、压测kafka。 2.1 使用kafka自带压测工具:bin/kafka-producer-perf-test.sh 命令参数解释: --num

                  [转帖]Kafka—配置SASL/PLAIN认证客户端及常用操作命令

                  介绍 SASL/PLAIN 是一种简单的 username/password安全认证机制,本文主要总结服务端开启该认证后,命令行客户端进行配置的操作流程。 配置 增加jaas.properties 在kafka的config目录下增加jaas.properties文件指定认证协议为SASL_PLAI

                  [转帖]kafka 配置认证与授权

                  https://www.cnblogs.com/yjt1993/p/14739130.html 本例不使用kerberos做认证,使用用户名和密码的方式来进行认证 1、服务端配置 1.0 配置server.properties 添加如下配置 #配置 ACL 入口类 authorizer.class.

                  [转帖]Kafka—配置SASL/PLAIN认证客户端及常用命令

                  https://www.jianshu.com/p/c1a02fb1779f 介绍 SASL/PLAIN 是一种简单的 username/password安全认证机制,本文主要总结服务端开启该认证后,命令行客户端进行配置的操作流程。 配置 增加jaas.properties 在kafka的confi

                  [转帖]kafka搭建kraft集群模式

                  kafka2.8之后不适用zookeeper进行leader选举,使用自己的controller进行选举 1.准备工作 准备三台服务器 192.168.3.110 192.168.3.111 192.168.3.112,三台服务器都要先安装好jdk1.8,配置好环境变量, 下载好kafka3.0.0