docker部署简单的Kafka

news2024/10/6 8:26:31

文章目录

  • 1. 拉取镜像
  • 2. 运行
      • 创建网络
      • 运行 ZooKeeper 容器
      • 运行 Kafka 容器
  • 3. 简单的校验
      • 1. 检查容器状态
      • 2. 检查 ZooKeeper 日志
      • 3. 检查 Kafka 日志
      • 4. 使用 Kafka 命令行工具检查
      • 5. 创建和删除测试主题

1. 拉取镜像

选择一组兼容性好的版本。

docker pull bitnami/kafka:3.6.1
docker pull bitnami/zookeeper:3.8.2

2. 运行

创建网络

首先,创建一个名为 kafka 的 Docker bridge 网络:

docker network create kafka

运行 ZooKeeper 容器

然后,运行 ZooKeeper 容器并将其连接到 kafka 网络:

docker run -d --name zookeeper --network kafka -e ALLOW_ANONYMOUS_LOGIN=yes bitnami/zookeeper:3.8.2

运行 Kafka 容器

最后,运行 Kafka 容器并将其连接到 kafka 网络:

docker run -d --name kafka --network kafka -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -p 9092:9092 bitnami/kafka:3.6.1

这些命令将使 ZooKeeper 和 Kafka 容器在同一个 Docker 网络中运行,并确保它们可以相互通信。

3. 简单的校验

要判断 ZooKeeper 和 Kafka 容器是否正常运行,可以通过以下几个步骤进行检查:

1. 检查容器状态

首先,检查 ZooKeeper 和 Kafka 容器是否正在运行:

docker ps

输出应包含类似以下内容:

CONTAINER ID   IMAGE                        COMMAND                  CREATED          STATUS          PORTS                                        NAMES
<zookeeper_id> bitnami/zookeeper:3.8.2      "/opt/bitnami/script…"   <some_time_ago>  Up <some_time>  2181/tcp                                     zookeeper
<kafka_id>     bitnami/kafka:3.6.1          "/opt/bitnami/script…"   <some_time_ago>  Up <some_time>  0.0.0.0:9092->9092/tcp, :::9092->9092/tcp   kafka

2. 检查 ZooKeeper 日志

查看 ZooKeeper 容器的日志,以确保它已成功启动并正在运行:

docker logs zookeeper

日志中应包含类似以下内容:

INFO  Started AdminServer on address 0.0.0.0, port 8080
INFO  binding to port 0.0.0.0/0.0.0.0:2181

3. 检查 Kafka 日志

查看 Kafka 容器的日志,以确保它已成功连接到 ZooKeeper 并正在运行:

docker logs kafka

日志中应包含类似以下内容:

INFO  [KafkaServer id=1] started (kafka.server.KafkaServer)
INFO  [ZooKeeperClient] Connected. (org.apache.zookeeper.ClientCnxn)

4. 使用 Kafka 命令行工具检查

进入 Kafka 容器内部,并使用 Kafka 命令行工具检查 Kafka 和 ZooKeeper 的状态:

docker exec -it kafka /bin/bash

# 列出 Kafka 主题
kafka-topics.sh --list --bootstrap-server kafka:9092

如果可以成功列出 Kafka 主题,则表示 Kafka 和 ZooKeeper 正常运行。

5. 创建和删除测试主题

可以尝试创建一个测试主题,并查看是否成功:

# 创建一个名为 test-topic 的主题
kafka-topics.sh --create --topic test-topic --partitions 1 --replication-factor 1 --bootstrap-server kafka:9092

# 列出所有主题,确认 test-topic 是否存在
kafka-topics.sh --list --bootstrap-server kafka:9092

# 删除 test-topic 主题
kafka-topics.sh --delete --topic test-topic --bootstrap-server kafka:9092

通过以上步骤,可以确认 ZooKeeper 和 Kafka 容器是否正常运行并相互通信。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1891540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】类和对象(中)--上篇

个人主页~ 类和对象上 类和对象 一、类的六个默认成员函数二、构造函数1、构造函数基本概念2、构造函数的特性 三、析构函数1、析构函数的概念2、特性 四、拷贝构造函数1、拷贝构造函数的概念2、特征 一、类的六个默认成员函数 如果有个类中什么成员都没有&#xff0c;那么被称…

[C++初阶]vector的初步理解

一、标准库中的vector类 1.vector的介绍 1. vector是表示可变大小数组的序列容器 &#xff0c; 和数组一样&#xff0c;vector可采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大…

营销故事之扩大牙膏开口

职场营销故事“扩大牙膏开口”又可以说是“牙膏开口扩大1毫米”&#xff0c;为十大经典营销故事之一。某品牌的牙膏&#xff0c;包装精美&#xff0c;品质优良&#xff0c;备受顾客喜爱&#xff0c;连续10年营业额保持10%-20%的增幅。可到了第11年&#xff0c;销售业绩却停滞不…

API-正则表达式

学习目标&#xff1a; 掌握正则表达式 学习内容&#xff1a; 什么是正则表达式语法元字符修饰符 什么是正则表达式&#xff1a; 正则表达式是用于匹配字符串中字符组合的模式。在JavaScript中&#xff0c;正则表达式也是对象。 通常用来查找、替换那些符合正则表达式的文本&a…

泛微开发修炼之旅--26前端j实现手机号码验证

文章链接&#xff1a;26前端j实现手机号码验证

开关电源中强制连续FCCM模式与轻载高效PSM,PFM模式优缺点对比笔记

文章目录 前言一、连续FCCM模式优点&#xff1a;缺点&#xff1a; 二,轻载高效PSM&#xff0c;PFM优点&#xff1a;缺点: 总结 前言 今天我们来学习下开关电源中&#xff0c;强制连续FCCM模式与轻载高效PSM&#xff0c;PFM模式优缺点对比 一、连续FCCM模式 优点&#xff1a; …

安装 VisualSVN Server提示HTTP服务无法启动的问题解决

安装 VisualSVN Server 版本&#xff1a;VisualSVN-Server-5.4.0-x64 安装包在安装到一半的时候&#xff0c;弹窗提示&#xff1a;HTTP服务无法启动&#xff0c;网上找了一大堆&#xff0c;说是service里面更改用户为本地用户什么的都没用用&#xff0c;点右键也无法启动。 …

【Python实战因果推断】17_线性回归的不合理效果7

目录 Regression for Dummies Conditionally Random Experiments Dummy Variables Regression for Dummies 回归和正交化固然很好&#xff0c;但归根结底&#xff0c;你必须做出独立性假设。你必须假设&#xff0c;在考虑到某些协变量的情况下&#xff0c;干预看起来与随机分…

力扣67 二进制求和

文章目录 1. 题目链接2. 题目代码3.感受 1. 题目链接 二进制求和 2. 题目代码 class Solution { public:string addBinary(string a, string b) {vector<int> stringA;vector<int> stringB;int lengthOfA a.length();int lengthOfB b.length();for(int subscrip…

【C++】初步认识C++

1. 初识C1.1 C概念相关1.2 C发展史及其重要性1.2.1 发展史1.2.2 重要性 2. C关键字3. 命名空间4. 输入和输出 个人主页&#xff1a;C_GUIQU 归属专栏&#xff1a;【C学习】 1. 初识C 1.1 C概念相关 C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。 【来源】…

seq2seq+Attention机制原理介绍

一、Seq2seq的局限性 Seq2seq&#xff08;序列到序列&#xff09;模型我们在前面讲了它的原理&#xff0c;是一种广泛用于处理序列转换任务的深度学习架构&#xff0c;特别是在机器翻译、文本摘要、对话生成等应用中。然而&#xff0c;尽管seq2seq模型在某些领域取得了显著的成…

数据结构----栈和队列之队列的实现

目录 1.基本概况 2.队列组成 3.队列的实现 &#xff08;1&#xff09;队列的初始化 &#xff08;2&#xff09;队列的销毁 &#xff08;3&#xff09;队列的尾插 &#xff08;4&#xff09;队列的头删 &#xff08;5&#xff09;队列的判空 &#xff08;6&#xff09;队…

量产工具一一文字系统(三)

目录 前言 一、文字数据结构抽象 1.描述一个文字的位图 2.描述一个字库操作 3.font_manager.h 二、实现Freetype封装 1.freetype.c 三、实现文字管理 1.font_manager.c 四、单元测试 1.font_test.c 2.disp_manager.c 3.disp_manager.h 4.上机测试 前言 前面我们…

vue-router拆分音乐播放界面实战

创建项目 npm install -g pnpm pnpm create vite安装 pnpm add vue-routersrc/main.js import {createApp} from vue import ./style.css import App from ./App.vue import router from "./router/index.js";const app createApp(App) app.use(router) app.moun…

2024上半年网络工程师考试《应用技术》试题一

阅读以下说明&#xff0c;回答问题。 【说明】 MPLS基于(1)进行转发&#xff0c;进行MPLS标签交换和报文转发的网络设备称为(2)&#xff0c;构成MPLS域(MPSDomain)。位于MPLS域边缘、连接其他网络的LSR称为(3),区域内部的LSR称为核心LSR(CoreLSR)IP报文进入MPLS网络时&#xf…

微软关闭中国所有线下店,并不影响全球第一

​关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 微软没有被时代淘汰&#xff0c;时代也没有告别微软!中国市场对微软可有可无&#xff0c;即便没有中国市场&#xff0c;微软市值也在全球前三&#xff0c;这是事实!a 5月中旬&#xff0c;微软azure解散中国分部…

泛微开发修炼之旅--30 linux-Ecology服务器运维脚本

文章链接&#xff1a;30 linux-ecology服务器运维脚本

Java线程同步的特征和安全类型

一线程同步的特征 ◆不同的线程在执行以同一个对象作为锁标记的同步代码块或同步方法时&#xff0c;因为要获得这个对象的锁而相互牵制&#xff0c;多个并发线程访问同一资源的同步代码块或同步方法时。 ◆同一时刻只能有一个线程进入synchronized(this)同步代码块。 ◆当一个…

SpringBoot 通过Knife4j集成API文档 在线调试

介绍 Knife4j 是一款基于 Swagger 构建的增强型 API 文档生成工具&#xff0c;它提供了更多的定制化功能和界面优化&#xff0c;使得生成的 API 文档更加美观和易用。它可以帮助开发者快速生成和管理 API 文档&#xff0c;支持在线调试和交互。 依赖 <!--knife4j--> &…

Python容器 之 练习题

1.字符串的基本使用 # 定义一个字符串 str1, 字符串的内容为 "hello world and itcast and itheima and Python" str1 "hello world and itcast and itheima and Python" # 在字符串str1中查找 字符串 and 的下标 num str1.find(and) print(num) # 12…