Kafka读书笔记 -- 集群安装与配置(Docker)

栏目: 编程工具 · 发布时间: 7年前

➜ tree
.
├── docker-compose.yml
└── zoo.cfg

0 directories, 2 files

zoo.cfg

clientPort=2181
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
4lw.commands.whitelist=*

docker-compose.yml

version: '2'

services:
  # ZK Cluster
  zoo1:
    image: zookeeper:latest
    restart: always
    container_name: zoo1
    ports:
      - "12181:2181"
    volumes:
      - ./zoo.cfg:/conf/zoo.cfg
    environment:
      ZOO_MY_ID: 1 # ZK服务的ID
  zoo2:
    image: zookeeper:latest
    restart: always
    container_name: zoo2
    ports:
      - "22181:2181"
    volumes:
      - ./zoo.cfg:/conf/zoo.cfg
    environment:
      ZOO_MY_ID: 2
  zoo3:
    image: zookeeper:latest
    restart: always
    container_name: zoo3
    ports:
      - "32181:2181"
    volumes:
      - ./zoo.cfg:/conf/zoo.cfg
    environment:
      ZOO_MY_ID: 3

  # Kafka Cluster
  kafka1:
    image: wurstmeister/kafka
    restart: always
    container_name: kafka1
    ports:
      - "19092:9092"
    environment:
      KAFKA_BROKER_ID : 1
      KAFKA_ADVERTISED_HOST_NAME: kafka1
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
  kafka2:
    image: wurstmeister/kafka
    restart: always
    container_name: kafka2
    ports:
      - "29092:9092"
    environment:
      KAFKA_BROKER_ID : 2
      KAFKA_ADVERTISED_HOST_NAME: kafka2
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
  kafka3:
    image: wurstmeister/kafka
    restart: always
    container_name: kafka3
    ports:
      - "39092:9092"
    environment:
      KAFKA_BROKER_ID : 3
      KAFKA_ADVERTISED_HOST_NAME: kafka3
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181

验证

启动

➜ docker-compose up -d
Creating network "downloads_default" with the default driver
Creating zoo3   ... done
Creating kafka2 ... done
Creating kafka3 ... done
Creating zoo2   ... done
Creating zoo1   ... done
Creating kafka1 ... done

➜ docker-compose ps
 Name               Command               State                      Ports
---------------------------------------------------------------------------------------------
kafka1   start-kafka.sh                   Up      0.0.0.0:19092->9092/tcp
kafka2   start-kafka.sh                   Up      0.0.0.0:29092->9092/tcp
kafka3   start-kafka.sh                   Up      0.0.0.0:39092->9092/tcp
zoo1     /docker-entrypoint.sh zkSe ...   Up      0.0.0.0:12181->2181/tcp, 2888/tcp, 3888/tcp
zoo2     /docker-entrypoint.sh zkSe ...   Up      0.0.0.0:22181->2181/tcp, 2888/tcp, 3888/tcp
zoo3     /docker-entrypoint.sh zkSe ...   Up      0.0.0.0:32181->2181/tcp, 2888/tcp, 3888/tcp

创建主题

➜ kafka-topics --create --topic test --zookeeper localhost:12181,localhost:22181,localhost:32181 --replication-factor 1 --partitions 1
Created topic "test".

➜ kafka-topics --zookeeper localhost:12181,localhost:22181,localhost:32181 --describe --topic test
Topic:test	PartitionCount:1	ReplicationFactor:1	Configs:
	Topic: test	Partition: 0	Leader: 3	Replicas: 3	Isr: 3

发送消息

➜ kafka-console-producer --topic=test --broker-list localhost:19092,localhost:29092,localhost:39092
>hello
>zhongmingmao

读取消息

➜  Downloads kafka-console-consumer --bootstrap-server localhost:19092,localhost:29092,localhost:39092 --from-beginning --topic
hello
zhongmingmao

关闭

➜ docker-compose down
Stopping kafka1 ... done
Stopping kafka3 ... done
Stopping zoo3   ... done
Stopping kafka2 ... done
Stopping zoo2   ... done
Stopping zoo1   ... done
Removing kafka1 ... done
Removing kafka3 ... done
Removing zoo3   ... done
Removing kafka2 ... done
Removing zoo2   ... done
Removing zoo1   ... done
Removing network downloads_default

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Kotlin实战

Kotlin实战

【美】Dmitry Jemerov(德米特里·詹莫瑞福)、【美】 Svetlana Isakova(斯维特拉娜·伊凡诺沃) / 覃宇、罗丽、李思阳、蒋扬海 / 电子工业出版社 / 2017-8 / 89.00

《Kotlin 实战》将从语言的基本特性开始,逐渐覆盖其更多的高级特性,尤其注重讲解如何将 Koltin 集成到已有 Java 工程实践及其背后的原理。本书分为两个部分。第一部分讲解如何开始使用 Kotlin 现有的库和API,包括基本语法、扩展函数和扩展属性、数据类和伴生对象、lambda 表达式,以及数据类型系统(着重讲解了可空性和集合的概念)。第二部分教你如何使用 Kotlin 构建自己的 ......一起来看看 《Kotlin实战》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具