kafka安装

99 阅读2分钟

zk集群的安装传送门:juejin.cn/post/714017…

简介:kafka是一种消息队列,主要用来处理大量数据状态下的消息队列,一般用来做日志的处理。

编写docker-compose.yml

version: '3.1'

services:
  kfk1:
    image: wurstmeister/kafka
    restart: always
    hostname: kfk1
    container_name: kfk1
    privileged: true
    ports:
      - 9091:9092
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_LISTENERS: PLAINTEXT://kfk1:9091
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kfk1:9091
      KAFKA_ADVERTISED_HOST_NAME: kfk1
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
      JMX_PORT: 9988
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /dzz/kfk1:/kafka/kafka\-logs\-kfk1
    external_links:
      - zoo1
      - zoo2
      - zoo3
    networks:  #已有网络,直接放在zk集群网络下
      - dcset_zoomy

  kfk2:
    image: wurstmeister/kafka
    restart: always
    hostname: kfk2
    container_name: kfk2
    privileged: true
    ports:
      - 9092:9092
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_LISTENERS: PLAINTEXT://kfk2:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kfk2:9092
      KAFKA_ADVERTISED_HOST_NAME: kfk2
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
      JMX_PORT: 9988
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /dzz/kfk2:/kafka/kafka\-logs\-kfk2
    external_links:
      - zoo1
      - zoo2
      - zoo3
    networks:
      - dcset_zoomy

  kfk3:
    image: wurstmeister/kafka
    restart: always
    hostname: kfk3
    container_name: kfk3
    privileged: true
    ports:
      - 9093:9092
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_LISTENERS: PLAINTEXT://kfk3:9093
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kfk3:9093
      KAFKA_ADVERTISED_HOST_NAME: kfk3
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
      JMX_PORT: 9988
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /dzz/kfk3:/kafka/kafka\-logs\-kfk3
    external_links:
      - zoo1
      - zoo2
      - zoo3
    networks:
      - dcset_zoomy

  kafka-manager:
    image: sheepkiller/kafka-manager:latest
    restart: always
    container_name: kafka-manager
    hostname: kafka-manager
    ports:
      - 9000:9000
    links:
      - kfk1
      - kfk2
      - kfk3
    external_links:
      - zoo1
      - zoo2
      - zoo3
    environment:
      ZK_HOSTS: zoo1:2181,zoo2:2181,zoo3:2181
      KAFKA_BROKERS: kfk1:9092,kfk2:9092,kfk3:9092
      APPLICATION_SECRET: letmein
      KM_ARGS: -Djava.net.preferIPv4Stack=true
    networks:
      - dcset_zoomy

networks:
  dcset_zoomy:
    external: true

执行

docker-compose up -d

查看

docker ps

kfk2.png

验收

网页打开ip:9000

image.png

新增

image.png

save后

image.png

有3个brokers,yes!

kafka-topics --list --zookeeper ip自己:2181 查看主题

kafka-topics --delete --zookeeper ip自己:2181 --topic test_logs 删除主题

发消息

进入kfk1

#创建主题topic
unset JMX_PORT;kafka-topics.sh --create --zookeeper zoo1:2181,zoo2:2181,zoo3:2181 --replication-factor 3 --partitions 1 --topic mykfk
#生产者发送消息
unset JMX_PORT;kafka-console-producer.sh --broker-list 192.168.56.106:9092 --topic mykfk

打开另一终端进入kfk2

#消费者订阅主题
unset JMX_PORT;kafka-console-consumer.sh --bootstrap-server 192.168.56.106:9092 --topic mykfk

然后发送消息

image.png

image.png

消息发送成功~! kafka的节点信息可以去zk查看

选择进入zoo1查看

image.png

散花!