docker部署简单的Kafka

文章目录

  • 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.mzph.cn/diannao/40314.shtml

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

相关文章

Facebook:数字社交的引领者与创新者

自2004年诞生以来&#xff0c;Facebook从一个校园网络项目迅速成长为全球最大的社交媒体平台&#xff0c;彻底改变了我们与世界互动的方式。作为数字社交的引领者和创新者&#xff0c;Facebook不仅在技术层面上不断突破&#xff0c;也在社会和文化领域留下了深刻的印记。本文将…

vue2 + element三级菜单实现模板

需求&#xff1a; 需要一个含有三级菜单的结构模板&#xff0c;用于业务快速开发。 解决&#xff1a; sidebar.vue <template><el-menu :default-active"defaultActive" class"el-menu-vertical-demo" active-text-color"#ffd04b"&…

『大模型笔记』2024大模型AI工程师必备技能!

2024大模型AI工程师必备技能! 文章目录 一. 2024大模型AI工程师必备技能!1. 引言:理解如何在各种应用中使用大语言模型(LLM)2. 第1层:Question answering(Q&A)3. 第2层:Chatbot=Q&A+短期记忆(上下文知识)4. 第3层:RAG=Q&A+短期记忆(上下文知识)+长期记忆(外…

【论文解读】CVPR2024:DUSt3R: Geometric 3D Vision Made Easy

论文“”https://openaccess.thecvf.com/content/CVPR2024/papers/Wang_DUSt3R_Geometric_3D_Vision_Made_Easy_CVPR_2024_paper.pdf 代码&#xff1a;GitHub - naver/dust3r: DUSt3R: Geometric 3D Vision Made Easy DUSt3R是一种旨在简化几何3D视觉任务的新框架。作者着重于…

Docker的架构原理

例子可以想象成一个买手机的场景 clien可以想象 你个人 docker deamon &#xff1a;店员 images&#xff1a; 样机 regisitry&#xff1a; 手机仓库 container: 使用的手机 首先我要在店员买一个手机&#xff0c;店员发现是样机&#xff0c;但是仓库有&#xff0c;&…

【SpringBoot3】使用Jasypt加密数据库用户名、密码等敏感信息

一、使用步骤介绍 使用Jasypt&#xff08;Java Simplified Encryption&#xff09;进行数据加密和解密主要涉及几个步骤&#xff0c;包括引入依赖、配置加密密码、加密敏感信息、将加密信息存储到配置文件中&#xff0c;以及应用程序启动时自动解密。以下是详细的使用说明&…

11 docker安装redis

目录 安装redis 1. 配置redis配置文件redis.conf 1.1. 找到redis.conf文件 1.2. 配置文件 2. 启动容器 3. 测试redis-cli连接 4. 证明docker使用的是指定的配置文件 安装redis 1. 配置redis配置文件redis.conf 1.1. 找到redis.conf文件 宿主机创建目录/app/redis在/a…

WebXR:Web上的虚拟与增强现实技术

WebXR 是一种允许在网页上创建虚拟现实 (VR) 和增强现实 (AR) 体验的技术标准&#xff0c;它结合了WebVR和WebAR的概念&#xff0c;为开发者提供了一个统一的平台来开发跨平台的沉浸式Web应用。 WebXR 概述 什么是WebXR&#xff1f; WebXR API 旨在让浏览器成为VR和AR内容的平…

双非怎么进大厂?

https://www.nowcoder.com/share/jump/2764630231719583704126 大家好&#xff0c;我是白露啊。 今天我们要分享一个非常励志的故事&#xff0c;它证明了双非背景的毕业生也可以通过努力和坚持&#xff0c;进入梦想中的大厂。 下面是这位网友的真实经历&#xff0c;希望能为正…

泰安再见,泰山OFFICE还会再见

路过泰安&#xff0c;遇见彩虹。怀念和感恩在泰山信息科技的万丈豪情。 泰山OFFICE&#xff0c;还是要复活。

JavaScript Set新增7个方法操作集合

intersection() intersection () 它返回一个包含此集合和给定集合中所有元素的新集合。 const odds new Set([1, 3, 5, 7, 9]);const squares new Set([1, 4, 9]);console.log(odds.intersection(squares)); // Set(2) { 1, 9 }union() union () 它返回一个包含此集合中所有元…

提升Android Studio开发体验:使用Kelp插件实现颜色和图标预览

提升Android Studio开发体验&#xff1a;使用Kelp插件实现颜色和图标预览 在Android开发中&#xff0c;自动补全功能对于提高开发效率至关重要。然而&#xff0c;默认的Android Studio并不能预览颜色和图标&#xff0c;这使得开发者在选择资源时常常感到困惑。本文将介绍如何使…

【C语言小知识】备选拼写:iso646.h头文件

备选拼写&#xff1a;iso646.h头文件 C语言中有3种逻辑运算符&#xff1a; 逻辑运算符含义&&与||或!非 假设exp1和exp2是俩个简单的关系表达式&#xff0c;那么 当且仅当exp1和exp2都为真时&#xff0c;exp1 && exp2才为真。如果exp1或exp2为真&#xff0c;…

【学习笔记】Fréchet距离的 C 语言实现

Frchet 距离 Frchet 距离&#xff0c;又称为弗雷歇距离&#xff0c;是一种衡量两条曲线&#xff08;或两个路径&#xff09;之间相似性的度量方法。这个概念最初在度量空间理论中被定义&#xff0c;后来被广泛应用于计算机科学、地理信息系统、图像处理、生物信息学等多个领域…

使用Python实现深度学习模型:迁移学习与领域自适应教程

引言 迁移学习和领域自适应是深度学习中的两个重要概念。迁移学习旨在将已在某个任务上训练好的模型应用于新的任务&#xff0c;而领域自适应则是调整模型以适应不同的数据分布。本文将通过一个详细的教程&#xff0c;介绍如何使用Python实现迁移学习和领域自适应。 环境准备…

Visual Studio常见问题

VS的文件路径为什么要用双斜杠(\)? 答:在编程时,写入文件的路径如image = cvLoadImage("C:\Users\lyb\Documents),这种写法在编译时不会报错,但在运行时会报错,报错图像读入为空,这是因为Windows的路径虽然用的是单斜杠,但在编程时的意义是不同的,单斜杠“\”…

Go语言中的可变参数:灵活而强大的函数参数

Go语言中的可变参数:灵活而强大的函数参数 在Go语言中,可变参数是一种非常有用的特性,它允许函数接受任意数量的参数。这种灵活性使得函数可以更加通用和可复用。本文将深入探讨Go语言中可变参数的用法、原理和最佳实践。 什么是可变参数? 可变参数允许你传递零个或多个值给…

LNMP架构搭建Discuz论坛

LNMP架构是一种用于搭建Web服务器环境的常用架构&#xff0c;由Linux、Nginx、MySQL和PHP组成 组成功能Linux作为操作系统的基础&#xff0c;提供稳定的环境Nginx作为反向代理服务器&#xff0c;处理客户端的请求并将他们转发给后端的应用服务器MySQL作为关系型数据库管理系统…

7.2 数据结构

作业 #include <stdio.h> #include <string.h> #include <stdlib.h> struct student {char name[32];int age;double score; }s[3];void stu_input(struct student *s,int n) {printf("请输入%d个学生的信息&#xff08;姓名&#xff0c;年龄&#xff0…

【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow

一、介绍 服装识别系统&#xff0c;本系统作为图像识别方面的一个典型应用&#xff0c;使用Python作为主要编程语言&#xff0c;并通过TensorFlow搭建ResNet50卷积神经算法网络模型&#xff0c;通过对18种不同的服装&#xff08;‘黑色连衣裙’, ‘黑色衬衫’, ‘黑色鞋子’, …