基于 kRaft 搭建单机 kafka 测试环境

这篇具有很好参考价值的文章主要介绍了基于 kRaft 搭建单机 kafka 测试环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用 docker-compose 在单机搭建有三个节点的 kafka 集群。文章来源地址https://www.toymoban.com/news/detail-622818.html

version: "3"

services:
  kafka1:
    image: "bitnami/kafka:3.3.1"
    networks:
      - kafka-controller
    container_name: kafka11
    user: root
    ports:
      - 9192:9092
    environment:
      ### 通用配置
      # 允许使用kraft,即Kafka替代Zookeeper
      - KAFKA_ENABLE_KRAFT=yes
      # kafka角色,做broker,也要做controller
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      # 指定供外部使用的控制类请求信息
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      # 定义kafka服务端socket监听端口
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      # 定义安全协议
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      # 使用Kafka时的集群id,集群内的Kafka都要用这个id做初始化,生成一个UUID即可
      - KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA
      # 集群地址
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka11:9093,2@kafka22:9093,3@kafka33:9093
      # 允许使用PLAINTEXT监听器,默认false,不建议在生产环境使用
      - ALLOW_PLAINTEXT_LISTENER=yes
      # 设置broker最大内存,和初始内存
      - KAFKA_HEAP_OPTS=-Xmx512M -Xms256M
      # 不允许自动创建主题
      - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
      ### broker配置
      # 定义外网访问地址(宿主机ip地址和端口)
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.3.63.38:9192
      # broker.id,必须唯一
      - KAFKA_BROKER_ID=1
    volumes:
      - ./vol/kafka1/kafka/kraft:/bitnami/kafka
  kafka2:
    image: 'bitnami/kafka:3.3.1'
    networks:
      - kafka-controller
    container_name: kafka22
    user: root
    ports:
      - 9292:9092
    environment:
      ### 通用配置
      # 允许使用kraft,即Kafka替代Zookeeper
      - KAFKA_ENABLE_KRAFT=yes
      # kafka角色,做broker,也要做controller
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      # 指定供外部使用的控制类请求信息
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      # 定义kafka服务端socket监听端口
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      # 定义安全协议
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      # 使用Kafka时的集群id,集群内的Kafka都要用这个id做初始化,生成一个UUID即可
      - KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA
      # 集群地址
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka11:9093,2@kafka22:9093,3@kafka33:9093
      # 允许使用PLAINTEXT监听器,默认false,不建议在生产环境使用
      - ALLOW_PLAINTEXT_LISTENER=yes
      # 设置broker最大内存,和初始内存
      - KAFKA_HEAP_OPTS=-Xmx512M -Xms256M
      # 不允许自动创建主题
      - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
      ### broker配置
      # 定义外网访问地址(宿主机ip地址和端口)
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.3.63.38:9292
      # broker.id,必须唯一
      - KAFKA_BROKER_ID=2
    volumes:
      - ./vol/kafka2/kafka/kraft:/bitnami/kafka
  kafka3:
    image: 'bitnami/kafka:3.3.1'
    networks:
      - kafka-controller
    container_name: kafka33
    user: root
    ports:
      - 9392:9092
    environment:
      ### 通用配置
      # 允许使用kraft,即Kafka替代Zookeeper
      - KAFKA_ENABLE_KRAFT=yes
      # kafka角色,做broker,也要做controller
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      # 指定供外部使用的控制类请求信息
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      # 定义kafka服务端socket监听端口
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      # 定义安全协议
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      # 使用Kafka时的集群id,集群内的Kafka都要用这个id做初始化,生成一个UUID即可
      - KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA
      # 集群地址
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka11:9093,2@kafka22:9093,3@kafka33:9093
      # 允许使用PLAINTEXT监听器,默认false,不建议在生产环境使用
      - ALLOW_PLAINTEXT_LISTENER=yes
      # 设置broker最大内存,和初始内存
      - KAFKA_HEAP_OPTS=-Xmx512M -Xms256M
      # 不允许自动创建主题
      - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
      ### broker配置
      # 定义外网访问地址(宿主机ip地址和端口)
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.3.63.38:9392
      # broker.id,必须唯一
      - KAFKA_BROKER_ID=3
    volumes:
      - ./vol/kafka3/kafka/kraft:/bitnami/kafka

  kafka-ui:
    image: provectuslabs/kafka-ui:v0.7.1
    networks:
      - kafka-controller
    container_name: kafka-ui
    restart: always
    ports:
      - 9400:8080
    volumes:
      - /etc/localtime:/etc/localtime
    environment:
      # 集群名称
      - KAFKA_CLUSTERS_0_NAME=local
      # 集群地址
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka11:9092,kafka22:9092,kafka33:9092


networks:
  kafka-controller:

到了这里,关于基于 kRaft 搭建单机 kafka 测试环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Kafka】Kafka3.3.1集群搭建指南KRaft版本

    目录 一、背景和描述 二、资源情况 三、技术选型 四、部署Kraft版本集群 五、配置SSL模式 六、Springboot使用SSL集成 参考资料 考虑资源安全性,需要搭建不依赖Zookeeper的kafka集群环境,并且配置SSL访问控制 Apache Kafka Raft 是一种共识协议,它的引入是为了消除 Kafka 对 ZooKeeper 的

    2024年02月05日
    浏览(55)
  • 【运维】Kafka高可用: KRaft(不依赖zookeeper)集群搭建

    本文主要介绍了 kafka raft集群架构: 与旧架构的不同点,有哪些优势,哪些问题 架构成员有哪些,怎么规划。 三节点集群安装、启动与测试 在旧的架构中 Kafka集群包含 多个broker节点和一个ZooKeeper 集群 。如上图集群结构:4个broker节点和3个ZooKeeper节点。Kafka 集群的controller在

    2024年02月03日
    浏览(41)
  • 彻底搞懂Docker容器与Kraft模式kafka集群关于消息大小相关参数设置

    部署背景: 在DockerHub拉取的bitnami/kafka:3.4.1 镜像,如果要部署在Docker-Swarm集群或者单Docker部署,对于消息大小设置需要添加参数 KAFKA_CFG_MESSAGE_MAX_BYTES,如果设置为其他不符合规范的参数格式,会导致容器一直启动不了。 PS:KAFKA_CFG_MESSAGE_MAX_BYTES 是针对Broker级别消息大小限制

    2024年02月08日
    浏览(37)
  • Kafka KRaft模式探索

    Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。其核心组件包含Producer、Broker、Consumer,以及依赖的Zookeeper集群。其中Zookeeper集群是Kafka用来负责集群元数据的管理、控制器的选举等。 目前,Kafka在使用的过程当中,会出现一些

    2024年02月05日
    浏览(39)
  • Kafka系列之:Kraft模式

    Kafka元数据存储在zookeeper中,运行时动态选举controller,由controller进行Kafka集群管理。 Kraft模式不再依赖zookeeper集群,用三台controller节点代替zookeeper,元数据保存在controller中,由controller直接进行Kafka集群管理。 Kraft的好处有以下几个: Kafka不再依赖外部框架,而是能够独立运

    2024年02月12日
    浏览(36)
  • 七、Kafka-Kraft 模式

    左图为 Kafka 现有架构,元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理 右图为 kraft 模式架构(实验性),不再依赖 zookeeper 集群,而是用三台 controller 节点代替 zookeeper,元数据保存在 controller 中,由 controller 直接进行 Kafka 集群管理。 这样做的

    2024年02月11日
    浏览(42)
  • Kafka集群部署 (KRaft模式集群)

    KRaft 模式是 Kafka 在 3.0 版本中引入的新模式。KRaft 模式使用了 Raft 共识算法来管理 Kafka 集群元数据。Raft 算法是一种分布式共识算法,具有高可用性、可扩展性和安全性等优势。 在 KRaft 模式下,Kafka 集群中的每个 Broker 都具有和 Zookeeper 类似的角色。每个 Broker 都参与管理

    2024年02月03日
    浏览(37)
  • 手动部署Kraft模式Kafka集群

    IP地址 Hostname Release Kafka-Version 172.29.145.157 iamdemo1 Centos7.9 kafka_2.12-3.5.1 172.29.145.182 iamdemo2 Centos7.9 kafka_2.12-3.5.1 172.29.145.183 iamdemo3 Centos7.9 kafka_2.12-3.5.1 下载安装包 kafka安装包官网下载 下载完成后上传到服务器/opt目录下解压 生成集群随机uuid 配置kafka集群的kraft模式参数 使用集群

    2024年02月05日
    浏览(42)
  • Kraft模式下Kafka脚本的使用

    Kafka集群 版本:V3.5.1 名称 Node1 Node2 Node3 IP 172.29.145.157 172.29.145.182 172.29.145.183 (1)查看Kraft集群中的状态以及Leader节点,投票节点 使用--status可以查看集群选举次数/水位线以及投票节点等 使用--replication可以查看Ledaer和Follower分布 ./kafka-metadata-quorum.sh --bootstrap-server 172.29.145.1

    2024年02月08日
    浏览(37)
  • kafka伪集群部署,使用KRAFT模式

    2024年02月07日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包