热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过docker搭建kafka集群

启动一个虚拟机centos7配置yum源安装dockeryum-yinstalldocker启动Docker后台服务servicedockerstart执行如下命令,
  • 启动一个虚拟机 centos7

  • 配置yum源

  • 安装docker

    yum -y install docker

  • 启动 Docker 后台服务

    service docker start

  • 执行如下命令,确认docker可用

    docker image ls

  • 使用docker命令搜索kafka和zookeeper命令

    docker search kafka
    docker search zookeeper

  • 下载排名较高的镜像,时间较长

    docker pull docker.io/wurstmeister/zookeeper
    docker pull wurstmeister/kafka

  • 确认镜像下载成功

    [root@master ~]# docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    docker.io/wurstmeister/kafka latest f1905dce9659 7 weeks ago 431 MB
    docker.io/wurstmeister/zookeeper latest 3f43f72cb283 17 months ago 510 MB

  • 启动zookeeper

    docker run -d --name zookeeper -p 2181:2181 -t docker.io/wurstmeister/zookeeper

  • 启动可能报错:

    Error response from daemon: oci runtime error: container_linux.go:235:

  • 解决办法: 将所有rpm更新到最新

    yum -y update

  • 更新完后先删掉之前的container

    docker container ls -a
    docker container rm

  • 重新启动zookeeper

    docker run -d --name zookeeper -p 2181:2181 -t docker.io/wurstmeister/zookeeper

  • 查看端口,确认启动成功了

    netstat -nlp|grep 2181

  • 启动kafka

    docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.28.128.14:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.28.128.14:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t docker.io/wurstmeister/kafka

  • 查看端口,确认启动成功了

    netstat -nlp|grep 9092

  • 通过如下命令确认zk和kafka是否启动成功了

    docker ps -a

  • 进入kafka容器, 629c0f149e27是Kafka容器 ID,每次不一样

    docker exec -it 735c810c2d55 /bin/bash

  • 测试功能 --测试完成

    创建topic
    /opt/kafka/bin/kafka-topics.sh --create --zookeeper 172.28.128.14:2181 --replication-factor 1 --partitions 1 --topic function_test
    消费者
    /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 172.28.128.14:9092 --topic function_test
    生产者
    /opt/kafka/bin/kafka-console-producer.sh --broker-list 172.28.128.14:9092 --topic function_test
    查看topic列表
    /opt/kafka/bin/kafka-topics.sh --list --zookeeper 172.28.128.14:2181
    删除topic
    /opt/kafka/bin/kafka-topics.sh --delete --zookeeper 172.28.128.14:2181 --topic function_test

  • 退出容器

    exit

  • 此时完成了单个节点的kafka容器,多个节点的kafka集群容器部署参考下面步骤

  • 分别创建3个Kafka节点,并注册到ZK上:

    # kafak0
    docker run -d --name kafka01 -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.28.128.14:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.28.128.14:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -h kafka01 -t docker.io/wurstmeister/kafka
    # kafka1
    docker run -d --name kafka02 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=172.28.128.14:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.28.128.14:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -h kafka02 -t docker.io/wurstmeister/kafka
    # kafka2
    docker run -d --name kafka03 -p 9094:9094 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=172.28.128.14:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.28.128.14:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -h kafka03 -t docker.io/wurstmeister/kafka

  • 执行如下命令。确认容器启动成功

    docker ps -a

  • 至此通过docker搭建kafka集群成功。


推荐阅读
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 本文将介绍一种扩展的ASP.NET MVC三层架构框架,并通过使用StructureMap实现依赖注入,以降低代码间的耦合度。该方法不仅能够提高代码的可维护性和可测试性,还能增强系统的灵活性和扩展性。通过具体实践案例,详细阐述了如何在实际开发中有效应用这一技术。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • Flowable 流程图路径与节点展示:已执行节点高亮红色标记,增强可视化效果
    在Flowable流程图中,通常仅显示当前节点,而路径则需自行获取。特别是在多次驳回的情况下,节点可能会出现混乱。本文重点探讨了如何准确地展示流程图效果,包括已结束的流程和正在执行的流程。具体实现方法包括生成带有高亮红色标记的图片,以增强可视化效果,确保用户能够清晰地了解每个节点的状态。 ... [详细]
  • 在 CentOS 7 中,为了扩展可用软件包的数量,通常需要配置多个第三方软件源。这些第三方源包括 EPEL、Nux Dextop 和 ELRepo 等,它们提供了大量官方源中未包含的软件包,从而增强了系统的功能性和灵活性。通过正确配置这些源,用户可以轻松安装和管理更多种类的软件,满足不同的需求。 ... [详细]
  • 如何高效地安装并配置 PostgreSQL 数据库系统?本文将详细介绍从下载到安装、配置环境变量、初始化数据库、以及优化性能的全过程,帮助读者快速掌握 PostgreSQL 的核心操作与最佳实践。文章还涵盖了常见问题的解决方案,确保用户在部署过程中能够顺利解决遇到的各种挑战。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
author-avatar
随之爱_629
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有