Docker 安装kafka 并创建topic 进行消息通信

        Apache Kafka是一个分布式流处理平台,用于构建高性能、可扩展的实时数据流应用程序。本文将介绍如何使用Docker容器化技术来安装和配置Apache Kafka。

一、使用镜像安装

1、kafka安装必须先安装Zookpper

2、下载镜像

docker pull wurstmeister/kafka

3、查看下载好的镜像

docker images

4、启动Kafka

docker run -d --name kafka --publish 9092:9092 \ --link zookeeper \ --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ --env KAFKA_ADVERTISED_HOST_NAME=127.0.0.1 \ --env KAFKA_ADVERTISED_PORT=9092 \ wurstmeister/kafka

5、查看是否创建好Kafka容器

docker ps

6、进入到Kafka容器内

sudo docker exec -it kafka /bin/bash

7、创建topic

cd opt/kafka_2.13-2.6.0/bin

创建topic

./kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 8 --topic test Created topic test.

8、创建成功之后发送消息

./kafka-console-producer.sh --broker-list localhost:9092 --topic test

9、重新打开一个终端,创建消费者

sudo docker exec -it kafka /bin/bash cd opt/kafka_2.13-2.6.0/bin/ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning #若不想从头消费就使用 ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test

这样就能接受到生产着生产的数据了

10、查看、删除Kafka中的所有的topic

#查看 ./kafka-topics.sh --list --bootstrap-server ZK地址:端口
./kafka-topics.sh --list --bootstrap-server localhost:9092#删除 ./kafka-topics.sh --delete --bootstrap-server ZK地址:端口 --topic topic名
./kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic local_point

二、使用Docker Compose安装

1. 安装Docker和Docker Compose

        首先,确保你的系统已经安装了Docker和Docker Compose。你可以根据操作系统的不同,按照官方文档的指引进行安装。

2. 创建Docker Compose文件

        在你的项目目录下创建一个名为`docker-compose.yml`的文件,并添加以下内容:

services:
 zookeeper:
 image: confluentinc/cp-zookeeper:6.2.0 ports:
 - "2181:2181"
 environment:
 - ZOOKEEPER_CLIENT_PORT=2181 - ZOOKEEPER_TICK_TIME=2000 kafka:
 image: confluentinc/cp-kafka:6.2.0 ports:
 - "9092:9092"
 environment:
 - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 depends_on:
 - zookeeper```

 
3. 启动Kafka集群

        打开终端,进入到包含`docker-compose.yml`文件的目录,并执行以下命令启动Kafka集群,如下命令Docker将会下载所需的镜像,并启动一个包含Zookeeper和Kafka的容器集群。

bashdocker-compose up -d

4. 验证Kafka集群是否正常运行

         执行以下命令,查看Kafka集群的运行状态:如果所有容器都处于运行状态,则表示Kafka集群已成功启动。

bashdocker-compose ps

 5. 使用Kafka

        现在可以使用Kafka进行消息的发布和订阅。可以使用Kafka的命令行工具或者编程语言的Kafka客户端库来与Kafka集群进行交互。

6. 停止和清理

        如果想停止Kafka集群并清理相关的容器和资源,可以执行以下命令,Docker将会停止并删除相关的容器和网络。

bashdocker-compose down

结论:
通过使用Docker容器化技术,我们可以方便地安装和配置Apache Kafka,快速搭建一个可用的Kafka集群。这为我们开发和测试实时数据流应用程序提供了便利,同时也提供了良好的可扩展性和灵活性。

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

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

相关文章

揭秘!9个月完成亚运会的整体数字化观测

项目背景与业务场景 2023 第 19 届亚运会在杭州举办,这将提高杭州的国际知名度,促进杭州经济、社会的全面发展,并将进一步推动奥林匹克运动在中国的发展,并且提升杭州城市形象和国际影响力。为亚运村村民提供便捷周到的服务和丰富…

分享几个可以免费使用GPT的网站

ChatGPT这个是国产的,里面可以使用3.5和4.0,免费用户每日都有各自的使用次数,反应迅速。文言一心国内百度的chart8新用户200次,但只能用3.5,响应速度有点慢 各有优缺点,大家看个人情况使用,个人…

不确定度校准和可靠性图简介

图片来源 项杰 一、说明 不确定性校准是机器学习中最容易被误解的概念之一。它可以概括为这个简单的问题:“鉴于上述下雨的可能性,您是否带伞?” 我们在日常生活中使用主观概率和不确定性校准的概念,但没有意识到它们。对于不确定…

第四节HarmonyOS 熟知开发工具DevEco Studio

一、设置主体样式 默认的代码主题样式是黑暗系的,如下图所示: 如果你不喜欢,可以按照一下步骤进行修改: 左上角点击Flie->Settings->Appearance&Behavior->Appearance,点击Theme,在弹出的下拉…

XXDD——UUII(交互设计)

今天我们再次回到Adobe全家桶的怀抱,今天介绍的这一位成员,是最直接帮助大家进行平面交互式设计的软件。他就是XD~ Adobe XD全称Adobe Experience Design CC, 官方版跨平台支持Win10 与 macOS,并且所有用户均可免费下载使用。Adob…

Linux fork笔试练习题

1.打印结果&#xff1f; #include <stdio.h> #include <unistd.h> #include <stdlib.h>int main() {int i0;for(;i<2;i){fork();printf("A\n");}exit(0); } 结果打印 A A A A A A 2.将上面的打印的\n去掉,结果如何? printf("…

解决No module named pip问题

pip更新指令&#xff1a;python -m pip install --upgrade pip输入运行后如果出现错误“no module named pip”&#xff0c;则运行以下指令&#xff1a;python -m ensurepipeasy_install pip然后再执行&#xff1a;python -m pip install --upgrade pip

Java小游戏 王者荣耀

GameFrame类 所需图片&#xff1a; package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayLis…

Linux处理文本常见命令

目录 1 vim 2 echo 3 tee 4 cat 1 vim 编辑文本类的内容&#xff0c;使用的时候 vim [文件名]&#xff0c;比如 vim A.txt 进入vim界面后&#xff0c;按i可以开启编辑模式&#xff0c;按ESC可以关闭编辑模式&#xff0c;关闭编辑模式后:wq!保存并退出 2 echo ech…

1052 Linked List Sorting (巨坑题)

题意&#xff1a;以address,val,next_address的形式给定一个链表&#xff0c;同时给定头节点的address&#xff0c;求将该链表排序后的形式。 pat拿分简单&#xff0c;但是拿要高分确实难。。 坑点一&#xff1a;有的结点不在该链表上&#xff0c;需要遍历一遍链表排除掉。&a…

20.什么是bean装配?

什么是bean装配&#xff1f; 装配&#xff0c;或bean 装配是指在Spring 容器中把bean组装到一起&#xff0c;前提是容器需要知道bean的依赖关系&#xff0c;如何通过依赖注入来把它们装配到一起。 额外扩展 Bean中主要包含三种装配方式&#xff0c;分别为 基于XML的装配基于…

PTA: 螺旋矩阵

题目 所谓“螺旋矩阵”&#xff0c;是指对任意给定的N&#xff0c;将1到NN的数字从左上角第1个格子开始&#xff0c;按顺时针螺旋方向顺序填入NN的方阵里。本题要求构造这样的螺旋方阵。 格式 输入格式: 输入在一行中给出一个正整数N&#xff08;<10&#xff09;。 输出…

【C语言加油站】函数栈帧的创建与销毁 #保姆级讲解

函数栈帧的创建与销毁 导言一、计算机硬件1.冯•诺依曼机基本思想2.冯•诺依曼机的特点&#xff1a;3.存储器3.1 分类3.2 内存的工作方式3.3 内存的组成 4.寄存器4.1 基本含义4.2 寄存器的功能4.3 工作原理4.4 分类4.4.1 通用寄存器组AX(AH、AL)&#xff1a;累加器BX(BH、BL)&a…

Git——Git应用入门

将会介绍以下知识&#xff1a; 搭建Git环境和创建Git版本库&#xff08;init、clone&#xff09;。文件添加、状态检查、创建注释和查看历史记录。与其他Git版本库交互&#xff08;pull、push&#xff09;。解决合并冲突。创建分支列表、列表切换和合并。创建标签。 1、版本控…

AI技术如何助力实现智慧交通

人工智能的常见优势在于能够实时、高效地分析处理大量的数据&#xff0c;并结合算法模型提供个性化、专业化的服务。在智慧交通方面&#xff0c;人工智能同样可以发挥专长&#xff0c;助力打造智能高效的交通运输网络&#xff0c;本篇就为大家简单介绍一下AI技术如何促进智慧交…

Linux基本命令二

Linux基本命令二 1、head 命令 head ​ **作用&#xff1a;**用于查看文件的开头部分的内容&#xff0c;有一个常用的参数 -n 用于显示行数&#xff0c;默认为 10&#xff0c;即显示 10 行的内容 ​ **语法&#xff1a;**head [参数] [文件] ​ 命令参数&#xff1a; 参数…

Java核心知识点整理大全20-笔记

目录 17. 设计模式 17.1.1. 设计原则 17.1.24. 解释器模式 18. 负载均衡 18.1.1.1. 四层负载均衡&#xff08;目标地址和端口交换&#xff09; 18.1.1.2. 七层负载均衡&#xff08;内容交换&#xff09; 18.1.2. 负载均衡算法/策略 18.1.2.1. 轮循均衡&#xff08;Roun…

js 循环哪种更快 for for..in.. forEach等

了解哪一种 for 循环或迭代器适合我们的需求&#xff0c;防止我们犯下一些影响应用性能的低级错误。 由 Artem Sapegin 上传至 Unsplash JavaScript 是 Web 开发领域的“常青树”。无论是 JavaScript 框架&#xff08;如 Node.js、React、Angular、Vue 等&#xff09;&#x…

数字人对本地生活商家的影响和应用

数字人的出现为本地生活商家带来了全新的机遇和挑战。让我们来了解一下什么是AI数字人是利用人工智能技术实现与真人直播形象的1:1克隆&#xff0c;即克隆出一个数字化的你自己&#xff0c;包括你的形象、表情、动作和声音都会被克隆下来&#xff0c;让你能够拥有接近真人的表现…

Java王者荣耀小游戏

Background类 package LX;import java.awt.*; //背景类 public class Background extends GameObject{public Background(GameFrame gameFrame) {super(gameFrame);}Image bg Toolkit.getDefaultToolkit().getImage("C:\\Users\\ASUS\\Desktop\\王者荣耀图片\\Map.jpg&…