单机单实例部署Kafka及测试

文章目录

  • 部署
    • Docker
  • 测试
    • 启动
    • 测试
      • 创建Topic
      • 生产者
      • 消费者
  • 集成Manager的部署
    • dockerfile
    • 效果
  • 参考资料

在我们做和kafka开发相关的工作时,往往希望独立部署一套kafka测试环境。而kafka部署时,不能只是简单安装kafka自身组件,还要安装zookeeper、JDK之类的辅助软件。这让其部署变得不是那么方便。本文将使用kafka和zookeeper的官方编译包来做部署。

部署

Docker

# dockerfile
FROM ubuntu:22.04
WORKDIR /home/kafka-alone/
RUN apt-get update && apt-get upgrade -y
RUN apt-get install default-jdk -y
RUN apt-get install wget -y
RUN wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
RUN tar -xvzf kafka_2.13-3.7.0.tgz
RUN wget https://archive.apache.org/dist/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz
RUN tar -xvzf apache-zookeeper-3.9.2-bin.tar.gz
RUN mv apache-zookeeper-3.9.2-bin zookeeper
RUN mv kafka_2.13-3.7.0 kafka
RUN rm -rf kafka_2.13-3.7.0.tgz
RUN rm -rf apache-zookeeper-3.9.2-bin.tar.gz
RUN mv zookeeper/conf/zoo_sample.cfg zookeeper/conf/zoo.cfg
EXPOSE 9092
RUN echo "./kafka/bin/zookeeper-server-start.sh ./kafka/config/zookeeper.properties &" >> start.sh
RUN echo "./kafka/bin/kafka-server-start.sh ./kafka/config/server.properties" >> start.sh
CMD ["/bin/bash", "-ce", "sh start.sh"]

然后使用下面指令编译成镜像

docker build --pull --rm -f "dockerfile" -t kafka-all-in-one:latest "." 

测试

启动

docker container run -d -p 9092:9092 --name kafka-all-in-one-container kafka-all-in-one:latest

容器内的执行日志如下
在这里插入图片描述

测试

创建Topic

docker exec -it kafka-all-in-one-container /bin/bash kafka/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092

在这里插入图片描述

生产者

docker exec -it kafka-all-in-one-container /bin/bash kafka/bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092

然后在终端中输入 hello world两个单词。
在这里插入图片描述

消费者

docker exec -it kafka-all-in-one-container /bin/bash kafka/bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092

在这里插入图片描述
消费者就会收到生产者发布的两个消息。

集成Manager的部署

我们集成Kafka Manager到docker中,以可视化的方式管理Kafka。

dockerfile

FROM ubuntu:22.04
WORKDIR /home/kafka-alone/
RUN apt-get update && apt-get upgrade -y
RUN apt-get install default-jdk -y
RUN apt-get install wget -y
RUN wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
RUN tar -xvzf kafka_2.13-3.7.0.tgz
RUN wget https://archive.apache.org/dist/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz
RUN tar -xvzf apache-zookeeper-3.9.2-bin.tar.gz
RUN mv apache-zookeeper-3.9.2-bin zookeeper
RUN mv kafka_2.13-3.7.0 kafka
RUN rm -rf kafka_2.13-3.7.0.tgz
RUN rm -rf apache-zookeeper-3.9.2-bin.tar.gz
RUN mv zookeeper/conf/zoo_sample.cfg zookeeper/conf/zoo.cfg
EXPOSE 9092
RUN echo "./kafka/bin/zookeeper-server-start.sh ./kafka/config/zookeeper.properties &" >> start.sh
RUN echo "./kafka/bin/kafka-server-start.sh ./kafka/config/server.properties &" >> start.sh

RUN apt-get install unzip -y
RUN wget https://github.com/yahoo/CMAK/releases/download/3.0.0.6/cmak-3.0.0.6.zip
RUN unzip cmak-3.0.0.6.zip
RUN mv cmak-3.0.0.6 cmak
RUN rm -rf cmak-3.0.0.6.zip
RUN sed -i 's/kafka-manager-zookeeper:2181/localhost:2181/g' cmak/conf/application.conf
RUN sed -i 's/cmak.zkhosts/#cmak.zkhosts/g' cmak/conf/application.conf
RUN echo "./cmak/bin/cmak -Dconfig.file=./cmak/conf/application.conf -Dhttp.port=8080" >> start.sh
EXPOSE 8080
CMD ["/bin/bash", "-ce", "sh start.sh"]

效果

使用下面命令部署后

docker build --pull --rm -f "dockerfile" -t kafka-all-in-one:latest "." 
docker container run -d -p 9092:9092 -p 8080:8080 --name kafka-all-in-one-container kafka-all-in-one:latest

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考资料

  • https://www.cnblogs.com/szx666/p/14635910.html
  • https://blog.csdn.net/qq_44519484/article/details/121908565
  • https://medium.com/yavar/installation-of-apache-kafka-on-ubuntu-22-04-59e57f878979
  • https://akhq.io/docs/installation.html#docker
  • https://github.com/yahoo/CMAK

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

你准备好迎接它了吗?英伟达CEO黄仁勋预言:人形机器人将成为未来主流

在近日举行的“CadenceLIVE 硅谷 2024”大会上,英伟达公司的首席执行官黄仁勋与大会主办方Cadence公司的CEO进行了一场富有深度的对话。在这场引人瞩目的交流中,黄仁勋大胆预测,未来人形机器人将成为主流,引领科技发展的新潮流。 …

n!的位数:面向对象的解法

Description:针对每个非负整数n&#xff0c;计算其n!的位数。 Input:输入数据中含有一些整数n(0≤n<10^7)。 Output:根据每个整数n&#xff0c;输出其n!的位数&#xff0c;每个数占独立一行。Output:重新排列01串的顺序。使得串按基本描述的方式排序。 #include <iostr…

MATLAB——M文件

M文件 MATLAB允许编写两种程序文件- 脚本−脚本文件是扩展名为.m的程序文件。在这些文件中&#xff0c;您编写了一系列要一起执行的命令。脚本不接受输入&#xff0c;也不返回任何输出。它们对工作区中的数据进行操作。 函数−函数文件也是扩展名为.m的程序文件。函数可以接…

数图可视化品类空间管理系统入编《零售门店数字化赋能专项报告(2024年)》

数图可视化品类空间管理系统荣幸入编中国连锁经营协会发布的 《零售门店数字化赋能专项报告&#xff08;2024年&#xff09;》&#xff0c;报告以零售门店为切入点&#xff0c;通过引入“5P”的技术框架及梳理业内配套最佳实践方案&#xff0c;理出一套科学的、完整的零售门店数…

未来城市可视化,A3D引擎支持,免费搭建全新一代数字孪生!

AMRT3D数字孪生引擎https://www.amrt3d.com/#/ 什么是未来城市&#xff1f;它是新型数字化理念的载体&#xff0c;以数字孪生与物理世界城市的融合为核心&#xff0c;通过数字孪生技术在数字空间实时构建城市&#xff0c;采用数据整合和分析预测来实时模拟、预测、控制整体城市…

使用gdal均匀筛选点矢量

使用gdal均匀筛选点矢量 作用&#xff1a; 通过计算各点之间的欧式距离&#xff0c;筛选出符合目标的、均匀发布在空间中的N个数据点。 效果示意图 运行环境 python 3.10 安装&#xff1a;tqdm、numpy和tqdm这三个库 完整代码 import numpy as np from osgeo import ogr,…

星域社区原版APP源码/社区交友App源码/动态圈子群聊php源码

简介 初始版本是由RuleAPP规则之树开发的&#xff0c;而星域社区则是在此基础上进行了二次开发和美化。作者花了近一年的时间来打磨它&#xff0c;现在即将推出Pro版。如果你只想免费使用的话&#xff0c;可以使用原始的RuleAPP版本。但是&#xff0c;如果你想要获得更好的美观…

python3爬虫笔记2

1 urlpare模块 urlparse模块主要用于处理URL字符串&#xff0c;它的核心功能是将URL拆分为多个组成部分&#xff0c;并允许你通过名字属性或索引来访问这些部分。通过调用urlparse模块的相关函数&#xff0c;你可以轻松解析URL&#xff0c;获取其不同组件的信息&#xff0c;如…

究竟该怎么寄快递才能安全无误的送到手中呢?

最近&#xff0c;小编上班了发现有同事在吐槽快递送到手中的时间很晚了&#xff0c;比预计的时间差了很多&#xff0c;并且产品也有不同程度的损坏。这就让我们很是恼火了&#xff0c;但是细细研究后才发现有一部分的原因竟然是我们的原因才导致的寄快递出现了很多纰漏。 首先…

sql(ctfhub)

一.整数型注入 输入1 输入2 输入2-1&#xff0c;回显为1的结果&#xff0c;说明是数字型&#xff0c;只有数字型才可加减 判断字段数为2 查询数据库 查表 查列 显示flag内容 二.字符型注入 输入1 输入2 输入2-1&#xff0c;说明为字符型&#xff0c;不是数字型 判断闭合方式为…

MyBatis 框架学习(I)

MyBatis 框架学习(I) 文章目录 MyBatis 框架学习(I)1. 介绍2. 准备&测试3. MyBatis 注解基础操作3.1 日志输出3.2 Insert 操作3.3 Delete 操作3.4 Update 操作3.5 Select 操作 总结 1. 介绍 之前我们学习过利用JDBC操作数据库进行项目开发&#xff0c;但我们发现它操作起来…

mysql基础19——日志

日志 mysql的日志种类非常多 通用查询日志 慢查询日志 错误日志 与时间有关联 二进制日志 中继日志 与主从服务器的同步有关 重做日志 回滚日志 与数据丢失有关 通用查询日志 记录了所有用户的连接开始时间和截至时间 以及给mysql服务器发送的所有指令 当数据异常时&…

Skill Check: Build an LLM Application using OCI Generative AI Service

Skill Check: Build an LLM Application using OCI Generative AI Service

Oracle21C 引入HR实例(linux)

1、下载资源 https://github.com/oracle-samples/db-sample-schemas点击code&#xff08;代码&#xff09;下载 2、上传Sql文件 解压之后将human_resources里的文件复制到demo\schema\目录&#xff08;具体目录前面的路径是你安装的路径&#xff09;下&#xff0c;如下图 3、…

Zoom会议频繁中断怎么办?解决策略来了

在远程办公盛行的今天&#xff0c;Zoom会议成为众多团队沟通协作的工具。然而&#xff0c;不少用户在使用过程中遇到Zoom会议频繁中断的困扰&#xff0c;这不仅影响工作效率&#xff0c;更可能阻碍信息的及时传递。那么&#xff0c;该如何应对这一问题&#xff0c;确保Zoom会议…

HarmonyOS开发实例:【图片编辑应用】

介绍 本篇Codelab通过动态设置元素样式的方式&#xff0c;实现几种常见的图片操作&#xff0c;包括裁剪、旋转、缩放和镜像。效果如图所示&#xff1a; 相关概念 [image组件]&#xff1a;图片组件&#xff0c;用来渲染展示图片。[div组件]&#xff1a;基础容器组件&#xff0…

wps免登录绕路

打开注册表 regedit 新建字符串值--> false

如何处理Keil uVision5注释无法输入汉字且输入汉字变成问号的问题

好久没用KEIL&#xff0c;今天在注释中出现无法输入汉字的情况&#xff0c;且输入或粘贴的汉字都变成了问号&#xff0c;解决方法很简单&#xff0c;将General Editor Settings: Encoding:设置为Chinese GB2312(Simplified)即可&#xff08;出现问号的当前设置是Encode in ANSI…

OpenHarmony实战开发-文件上传下载性能提升指导。

概述 在开发应用时&#xff0c;要实现高效的客户端跟服务器之间数据交换&#xff0c;文件传输的性能是至关重要的。一个数据交换性能较低的应用会导致其在加载过程中耗费较长时间&#xff0c;在很多的场景造成页面卡顿&#xff0c;极大的影响了用户体验。相反&#xff0c;一个…

使用vite从头搭建一个vue3项目(三)vite.config.js配置

目录 一、声明环境变量配置文件二、vite.config.js基础配置1、defineConfig()、loadEnv()2、plugins配置项3、server配置项4、resolve配置项5、css配置项6、build配置项 三、vite.config.js配置完整代码 VITE版本&#xff1a;v5.2.8 一、声明环境变量配置文件 在根目录下新建…