zoukankan      html  css  js  c++  java
  • docker快速搭建kafka集群

    1. 前言

    本文介绍如何在linux下利用docker快速搭建kafa单机集群

    2.项目

    地址:https://github.com/wurstmeister/kafka-docker

    3.环境安装

    3.1 安装docker-compose

    1)安装Python3

    参考Python系列

    2)安装相关lib

    Ubuntu:
    sudo apt install -y libffi-dev python-dev gcc*
    Centos:
    sudo yum install -y python-devel libffi-devel gcc*
    3)安装docker-compose
    sudo pip3 install docker-compose

    3.2 启动Kafka以及相关命令

    3.2.1 运行docker的kafka容器

    1)下载git工程
    git clone  https://github.com/wurstmeister/kafka-docker
    2)进入目录
    cd kafka-docker

    3.2.2 配置docker-compose.yml

    执行:sudo vim docker-compose.yml,修改为如下内容:
    version: '2'
    services:
      zookeeper:
        image: wurstmeister/zookeeper
        ports:
          - "2181:2181"
      kafka:
        build: .
        ports:
          - "9092"
        environment:
          KAFKA_ADVERTISED_HOST_NAME: {宿主机的ip}
          KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
          KAFKA_LOG_SEGMENT_BYTES: 1000000
          KAFKA_LOG_ROLL_HOURS: 2
          KAFKA_LOG_RETENTION_HOURS: 2
          KAFKA_LOG_CLEANER_ENABLE: "true"
          KAFKA_LOG_CLEANER_ENABLE: "true"
          KAFKA_LOG_CLEANER_DELETE_RETENTION_MS: 3600000
          KAFKA_LOG_INDEX_SIZE_MAX_BYTES: 1000000
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock

    3.2.3 启动kafka

    1)启动kafka
    docker-compose up -d 
    2) 查看是否启动成功
    docker-compose ps

    看到这里表明已经启动成功了,图中启动了一个zookeeper和以个kafka容器

    • zookeeper端口:2181
    • kafka1端口:1000

    3)扩容kafka节点

    #扩容kafka的docker实例为3
    docker-compose scale kafka=3 
     
    4)停止docker-compose启动的容器
    docker-compose stop

    3.3 kafka相关操作

    3.3.1. 启动kafka的docker shell

    cd ${工作目录}/kafka-docker/ && start-kafka-shell.sh

    首次启动会下载相关镜像,到这里意味着可以使用相关命令了

    3.3.2 使用kafka相关命令

    1)创建topic

    创建一个分区数为8,副本数为2的topic
    kafka-topics.sh --create --topic topic8 --partitions 8 --zookeeper {宿主机ip} --replication-factor 2

    2)查看topic
    查看所有已创建的topic
    kafka-topics.sh --list --zookeeper {宿主机ip} 

    3)向topic生产消息向topic8发送生产消息

    kafka-console-consumer.sh --topic topic8 --group g1 --broker-list {宿主机ip}:1000,{宿主机ip}:1001,{宿主机ip}:1002 

    4)向topic消息消息使用group:g1向topic8消费消息

    kafka-console-consumer.sh --topic topic8 --bootstrap-server {宿主机ip}:1000,{宿主机ip}:1001,{宿主机ip}:1002 

    5) 查看指定的topic

    kafka-topics.sh --describe --topic topic8 --zookeeper {宿主机ip}

    6)查看topic的消费情况 

    kafka-consumer-groups.sh --bootstrap-server {宿主机ip}:1000,{宿主机ip}:1001,{宿主机ip}:1002  --group g1 --describe 

    7)删除某个topic

    kafka-topics.sh --delete --zookeeper {宿主机ip} --topic topic8

    博主:测试生财(一个不为996而996的测开码农)

    座右铭:专注测试开发与自动化运维,努力读书思考写作,为内卷的人生奠定财务自由。

    内容范畴:技术提升,职场杂谈,事业发展,阅读写作,投资理财,健康人生。

    csdn:https://blog.csdn.net/ccgshigao

    博客园:https://www.cnblogs.com/qa-freeroad/

    51cto:https://blog.51cto.com/14900374

    微信公众号:测试生财(定期分享独家内容和资源)

     

  • 相关阅读:
    六、MySQL系列之数据备份(六)
    一:MySQL系列之基本介绍(一)
    第十一篇:面向对象之属性方法
    第十篇:面向对象系列之三大特性(二)
    Python开发之路:目录篇
    Linux基础知识(二)
    前端CSS规范整理
    如何使用BMap.Point传递变量、存储数据?
    百度地图API应用之获取用户的具体位置
    Bootstrap入门一:Hello Bootstrap
  • 原文地址:https://www.cnblogs.com/qa-freeroad/p/13780405.html
Copyright © 2011-2022 走看看