首页 > 其他分享 >使用 docker 部署 kafka

使用 docker 部署 kafka

时间:2024-01-29 20:45:34浏览次数:23  
标签:PLAINTEXT 部署 CFG KAFKA 9094 docker kafka

在很多时候我们需要使用到消息队列, 其中 kafka 是一个非常优秀的消息队列, 在我们平时开发中也经常会用到, 但是在开发环境中部署 kafka 是一个非常麻烦的事情

在 kafka 官网上, 有一个详细的部署文档, 需要的小伙伴可以参考这个文档 https://kafka.apache.org/quickstart, 但是随之带来的问题是, 我们需要 java 环境, 并且需要安装 zookerper,

那么如果我仅仅是想本地开发环境中使用 kafka, 有没有更简单的方法呢? 为了解决这个问题, 我们可以使用 docker 来部署 kafka

使用 docker 来部署 kafka 的测试节点, 我们需要先安装 docker 和 docker-compose, 这里就不再赘述了, 请自行安装

首先我们在已经安装好 docker 和 docker-compose 的机器上, 创建一个目录, 并且在这个目录下创建一个 docker-compose.yml 文件, 文件内容如下

version: "2"

services:
  kafka:
    image: docker.io/bitnami/kafka:3.6
    ports:
      - '9094:9094'
    volumes:
      - "kafka_data:/bitnami"
    environment:
      # KRaft settings
      - KAFKA_CFG_NODE_ID=0
      - KAFKA_CFG_PROCESS_ROLES=controller,broker
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
      # Listeners
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://localhost:9094
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
volumes:
  kafka_data:
    driver: local

然后我们就可以在这个目录下执行 docker-compose up -d 来启动 kafka 了, 启动完成后, 我们可以使用 docker ps 命令来查看 kafka 是否启动成功

➜  ~ docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED         STATUS                   PORTS                                                                                            NAMES
f346c045196d   bitnami/kafka:3.6         "/opt/bitnami/script…"   2 days ago      Up 2 days                0.0.0.0:9092-9094->9092-9094/tcp, :::9092-9094->9092-9094/tcp

此时需要注意打开防火墙限制, 例如我的防火墙使用的是 ufw , 我们需要执行以下命令

ufw allow 9094

然后我们就可以使用 kafka 了, 例如我现在使用 python 来连接 kafka, 首先我们需要安装 kafka-python

import time

from kafka import KafkaConsumer

consumer = KafkaConsumer('test',
                         group_id='test',
                         bootstrap_servers=['x.x.x.x:9094'])
for message in consumer:
    print(time.time(), "%s:%d:%d: key=%s value=%s" % (message.topic, message.partition,
                                                      message.offset, message.key,
                                                      message.value))
from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers=['x.x.x.x:9094'])

# Asynchronous by default
future = producer.send('test', b'raw_bytes')
producer.flush()

欢迎访问我的个人博客 https://blog.twotigers.xyz/posts/kafka/

标签:PLAINTEXT,部署,CFG,KAFKA,9094,docker,kafka
From: https://www.cnblogs.com/twotigers/p/17995288

相关文章

  • vue部署
    1.虚拟机打包0.本地打包(webstorm)npmrunbuild1.上传工程及镜像#1.将打包好的文件dist压缩,发送到服务器一文件夹内[root@localhost~]#cd/opt/frontend[root@localhostfrontend]#lsdist.zip#2.解压打包的文件[root@localhostfrontend]#unzipdist.zip[root@lo......
  • Eventgrid+Function实现event driven架构 - 架构介绍及环境部署
    今天来介绍这几年在云上比较流行的eventdriven,也就是事件驱动的架构,用一个很简单的sample来实际看下事件驱动的架构到底是个啥事件驱动的架构由生成事件流的事件生成者和侦听事件的事件使用者组成,它的特点是事件可几乎实时发送,因此使用者可在事件发生时需要立即做出响应。生成者......
  • Docker私有仓库搭建以及四大容器重启策略
    Docker私有仓库搭建以及四大容器重启策略registry私有仓库  #修改docker配置文件,并重启docker  #dockerrun-itd-v/data/registry:/var/lib/registry-p5000:5000--restart=always--nameregistryregistry:latest-itd:在容器中打开一个伪终端进行交互操作......
  • 一站式指南:ClkLog部署环境配置指南
    在今天的数字化世界中,数据管理和分析工具的选择对于企业的成功至关重要。ClkLog作为一款强大的日志分析工具,能够帮助企业从海量数据中洞察业务、提升效率。然而,如何才能顺利部署ClkLog系统,使其最大化地服务于您的业务呢?本篇文章将提供一站式的ClkLog部署指南,无论您是IT新手还是资深......
  • docker 快速入门实操教程
    docker快速入门实操教程docker,启动!如果安装好docker不知道怎么使用,不理解各个名词的概念,不太了解各个功能的用途,这篇文章应该会对你有帮助。前置条件:已经安装docker并且docker成功启动。最终目的:使用docker替换本地安装的程序并迁移数据(redis、MySQL)。理解概念docker官方提......
  • 部署在IIS上的网站如何调试
    原文链接:https://www.pianshen.com/article/1494487602/IIS中的网站调试调试最常见的一般就是将项目设为项,设为起始页,然后F5。稍微复杂点的就是附加到进程等。其实很简单,首先还是和原来一样,加上断点。但不要按F5了。选择工具菜单(调试菜单也可以),附加到进程。然后会惊现一个......
  • Jenkins + Gitlab 前后端项目自动化构建部署
    Jenkins+Gitlab前后端项目自动化构建部署:https://blog.csdn.net/IT_ZRS/article/details/115032509?spm=1001.2014.3001.5501Docker+Jenkins+Gitlab自动化构建部署:https://blog.csdn.net/IT_ZRS/article/details/117533847?spm=1001.2101.3001.6650.1&utm_medium=distrib......
  • docker-compose命令
    docker-compose命令1、基础命令docker-compose命令--help#获得一个命令的帮助docker-composeversion#查看docker-compose版本信息2、构建、卸载docker-composeup-dC#构建启动某个容器docker-composed......
  • docker-compose.yaml相关
    docker-compose.yaml相关Compose和Docker兼容性:Compose文件格式有3个版本,分别为1,2.x和3.x目前主流的为3.x其支持docker1.13.0及其以上的版本常用参数:version#指定compose文件的版本services#定义所有的service信息,......
  • docker-compose部署简单案例
    Dockerfile#设置基础镜像FROMpython:3.7#设置环境变量ENVPYTHONUNBUFFERED=1ENVPATH/usr/local/bin:$PATH#设置工作目录WORKDIR/home/lab#复制项目文件到容器中COPY./home/lab/#COPYrequirements.txt/home/lab#安装依赖包(先更新pip,换源,再安装包)......