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

news/2024/9/23 20:20:34/

前提

自行通过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.5restart: alwayscontainer_name: dsms_zookeeperports:- "2181:2181"environment:- ZOO_MY_ID=1kafka:image: wurstmeister/kafka:2.13-2.8.1restart: alwayscontainer_name: dsms_kafkaenvironment:- 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://:9092ports:- "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,则新建。

#!/bin/bash# 检查 Kafka 容器是否正常运行
while ! docker ps --format '{{.Names}}' | grep -q "^dsms_kafka$"; doecho "等待 Kafka 容器启动..."sleep 5
doneecho "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; thenecho "更新 http_capture 主题分区数量..."docker exec dsms_kafka kafka-topics.sh --alter --topic http_capture --partitions 5 --zookeeper zookeeper:2181
elseecho "创建新的 http_capture 主题..."docker exec dsms_kafka kafka-topics.sh --create --topic http_capture --partitions 5 --replication-factor 1 --zookeeper zookeeper:2181echo "新的 http_capture 主题创建成功."
fi# 删除临时文件
rm -f /tmp/kafka_topics_list.txt


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

相关文章

单例模式与反射创建对象

单例模式 饿汉式单例模式 单例模式&#xff0c;就是自己先把自己创建了&#xff0c;整个程序都只有这一个实例&#xff0c;别人都没有办法创建实例&#xff0c;因为他的构造方法是private的 一次性把全部都创建了 public class HungryMan {private static int [][] s new …

用Bash变量进行sed替换

问题&#xff1a; 我试图在一个 Bash 脚本中使用 sed 改变文本文件中的值&#xff1a; sed s/draw($old_num;n_)/draw($new_num;n_)/g file.txt > tmp这行代码将在 for 循环中。为什么它不起作用&#xff1f; 回答&#xff1a; 当使用 Bash 变量进行 sed 替换时&#xff…

【数据结构】冒泡排序

冒泡排序是一种简单的排序算法。 它基于重复地交换相邻元素的位置。算法的每一步都会比较相邻的两个元素&#xff0c;如果它们的顺序错误&#xff08;即第一个元素比第二个元素大&#xff09;&#xff0c;则交换它们。这样&#xff0c;每经过一轮比较和交换&#xff0c;数组中…

20240417金融读报:金融支持制造通知外汇局修订资本项目指引碳足迹现状与痛点

1、《关于深化制造业金融服务 助力推进新型工业化的通知》强化制造业中长期贷款和信用贷款支持&#xff0c;重点服务基础/创新行业&#xff0c;支持设备以旧换新&#xff08;更绿色、更智能&#xff09; 2、国家外汇局修订资本项目外汇业务指引&#xff0c;2024版5月6日起执行&…

【2024 SCI一区】 基于DCS-BiLSTM-Attention的多元回归预测(Matlab实现)

【2024 SCI一区】 基于DCS-BiLSTM-Attention的多元回归预测&#xff08;Matlab实现&#xff09; 目录 【2024 SCI一区】 基于DCS-BiLSTM-Attention的多元回归预测&#xff08;Matlab实现&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 差异创意搜索算法&…

dns可能不可用什么原因?

DNS&#xff08;Domain Name System&#xff09;可能不可用的原因有多种&#xff0c;包括&#xff1a; DNS服务器故障&#xff1a;DNS服务器可能发生故障&#xff0c;导致无法提供域名解析服务。这可能是由于硬件故障、软件错误、配置问题或网络问题引起的。 网络故障&#xf…

ASP.NET基于Web Mail收发系统设计与开发

摘 要 互联网络技术的不断发展&#xff0c;电子邮件服务已经成为人们基本的信息交互手段&#xff0c;也是网络服务中最早和最基本的服务之一。传统邮件系统大多是基于C/S结构&#xff0c;如Lotus notes、Microsoft Exchange Server等&#xff0c;这些邮件系统占用相对较多的服…

python实现视频剪辑

即刻关注&#xff0c;获取更多 实现目标 因上传某盘等文件大小限制&#xff0c;无法上传视频&#xff0c;故需要对视频进行压缩 参考资料 ffmpeg文档参考: https://ffmpeg.org/ffmpeg.html 依赖条件 已经安装好python3.11 &#xff0c;原则上更高版本也可以 安装 ffmpeg 依赖 p…