Docker中Kafka容器创建/更新Topic支持多分区

这篇具有很好参考价值的文章主要介绍了Docker中Kafka容器创建/更新Topic支持多分区。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前提

自行通过docker部署好kafka,并启动相关容器。
假设Topic为http_capture。

#docker-kafka
kafka_dir=/opt/docker/kafka/build
sudo rm -rf ${kafka_dir}/*
cat > ${kafka_dir}/docker-compose.yml <<EOF
version: "3.3"
services:
  zookeeper:
    image: zookeeper:3.5.5
    restart: always
    container_name: dsms_zookeeper
    ports:
      - "2181:2181"
    environment:
      - ZOO_MY_ID=1

  kafka:
    image: wurstmeister/kafka:2.13-2.8.1
    restart: always
    container_name: dsms_kafka
    environment:
      - KAFKA_BROKER_ID=1
      - KAFKA_ADVERTISED_HOST_NAME=${local_ip}
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_ZOOKEEPER_CONNECTION_TIMEOUT_MS=36000
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${local_ip}:9092
      - KAFKA_LISTENERS=PLAINTEXT://:9092
    ports:
      - "9092:9092"
    expose:
      - "9092"
    depends_on:
      - zookeeper
EOF
cd ${kafka_dir} && sudo /opt/bin/docker-compose up -d

Docker中Kafka容器创建/更新Topic支持多分区

检测Kafka运行正常后,如果Topic为http_capture的主题存在,则更新分区为5个,若不存在Topic,则新建。文章来源地址https://www.toymoban.com/news/detail-859055.html

#!/bin/bash

# 检查 Kafka 容器是否正常运行
while ! docker ps --format '{{.Names}}' | grep -q "^dsms_kafka$"; do
    echo "等待 Kafka 容器启动..."
    sleep 5
done

echo "Kafka 容器已成功启动."

# 在 Kafka 容器内执行命令,将结果保存到临时文件中
docker exec dsms_kafka kafka-topics.sh --list --zookeeper zookeeper:2181 > /tmp/kafka_topics_list.txt

# 检查 http_capture 主题是否存在
if grep -q "^http_capture$" /tmp/kafka_topics_list.txt; then
    echo "更新 http_capture 主题分区数量..."
    docker exec dsms_kafka kafka-topics.sh --alter --topic http_capture --partitions 5 --zookeeper zookeeper:2181
else
    echo "创建新的 http_capture 主题..."
    docker exec dsms_kafka kafka-topics.sh --create --topic http_capture --partitions 5 --replication-factor 1 --zookeeper zookeeper:2181
    echo "新的 http_capture 主题创建成功."
fi

# 删除临时文件
rm -f /tmp/kafka_topics_list.txt

到了这里,关于Docker中Kafka容器创建/更新Topic支持多分区的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • kafka topic多分区乱序问题

    [root@centos6 bin]# ./kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --replication-factor 1 --partitions 6 --topic test1 Created topic test1. [root@centos6 kafka]# cat produce_kafka.py  from kafka import KafkaProducer from kafka.errors import KafkaError import os producer = KafkaProducer(bootstrap_servers=[\\\'127.0.0.1:9092\\\']) # Asynchronous by de

    2024年02月06日
    浏览(46)
  • kafka修改Topic副本数和分区数

    一 .修改Kafka Topic副本数 1.bin/kafka-topics.sh --zookeeper gw04:2181,gw05:2181,gw06:2181 --create --partitions 3 --replication-factor 3 --topic bms_clean_dwm_es11_yb ##新建测试topic bms_clean_dwm_es11_yb 2.bin/kafka-topics.sh --zookeeper gw04:2181,gw05:2181,gw06:2181 --topic bms_clean_dwm_es11_yb --describe ##查看Topic详情如下: Topic:bms_cle

    2023年04月09日
    浏览(52)
  • 这里做一篇关于wsl2更新到最新版本使用镜像网络,但是docker创建的容器不能被访问的问题(困扰了我一整天)

    在windows2023年9月的一次更新中,wsl2支持了新的网络模式镜像模式,他能够通过localhost地址从wsl2内部连接到windows的127.0.0.1地址 ##相当于是和本地主机拥有同一个ip 原wsl2是不支持的,虽说是net网络模式,可访问主机,主机也可访问wsl2,同时也可上网,但是不能被网络访问,如

    2024年04月16日
    浏览(48)
  • kafka 动态扩容现有 topic 的分区数和副本数

    文档内出现的 ${KAFKA_BROKERS} 表示 kafka 的连接地址, ${ZOOKEEPER_CONNECT} 表示 zk 的连接地址,需要替换成自己的实际 ip 地址 创建一个演示 topic 查看 topic 详情 总共是六个 kafka 节点,三分区一副本,分散在三个不同的 kafka 节点 关于输出内容的概念 分区(Partition) : 主题(Topi

    2024年02月10日
    浏览(41)
  • kafka中topic的部分分区leader为none,怎样解决?

      (以Hadoop的topic为例) 进入Zookeeper客户端查看kafka存储的信息,/kafka/brokers/topics/hadoop/partitions/1/state get /kafka/brokers/topics/hadoop/partitions/1/state 查看到 {\\\"controller_epoch\\\":33,\\\"leader\\\":-1,\\\"version\\\":1,\\\"leader_epoch\\\":25,\\\"isr\\\":[3]}  leader为-1,固分区的leader为none 修改/kafka/brokers/topics/hadoop/partitions/

    2024年02月03日
    浏览(45)
  • Kafka系列之:记录一次Kafka Topic分区扩容,但是下游flink消费者没有自动消费新的分区的解决方法

    生产环境Kafka集群压力大,Topic读写压力大,消费的lag比较大,因此通过扩容Topic的分区,增大Topic的读写性能 理论上下游消费者应该能够自动消费到新的分区,例如flume消费到了新的分区,但是实际情况是存在flink消费者没有消费到新的分区 出现无法消费topic新的分区这种情况

    2024年02月14日
    浏览(50)
  • docker容器:Docker consul的容器服务更新与发现

    目录 一、Docker consul 1、什么是服务注册与发现 2、什么是consul 3、consul部署 ①实验目的 ②实验环境及拓扑 ③consul配置 ④registrator后端配置 ⑤测试发现功能是否正常 4、consul-template部署 ①准备template nginx模板文件 ②编译安装nginx ③安装template 5、验证template-nginx负载结果 6、测

    2024年02月04日
    浏览(38)
  • Kafka中的主题(Topic)和分区(Partition)是什么?它们之间有什么关系?

    在Kafka中,主题(Topic)和分区(Partition)都是用于组织和存储消息的概念,它们有密切的关系。 主题(Topic):主题是消息的逻辑分类。可以将主题理解为一个逻辑上的消息容器,类似于一个消息类别或者话题。在Kafka中,生产者(Producer)将消息发布到特定的主题,而消费

    2024年02月15日
    浏览(43)
  • 3.docker创建容器 (docker容器命令)

    2.1. 命令解读 docker run : 创建并运行一个容器 –name : 给容器起一个名字, 比如叫做 myNginx -p : 将宿主机端口与容器端口映射, 冒号左侧是宿主机端口, 右侧是docker容器端口 -d : 后台运行容器 nginx : 镜像名称 , 例如nginx 2.2. 通过查询得知nginx容器已经创建并运行成功 2.3. 验证是否启

    2024年02月04日
    浏览(45)
  • 《Docker极简教程》--Docker容器--Docker容器的创建和使用

    一、创建Docker容器 1.1 使用现有镜像创建容器 当使用现有镜像创建容器时,通常会涉及以下步骤: 获取镜像 :首先,需要从Docker Hub或其他镜像仓库获取所需的镜像。可以使用 docker pull 命令来获取镜像,语法如下: 其中, 镜像名称 是要获取的镜像的名称, 标签 是可选的版

    2024年02月19日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包