docker部署kafka的方法步驟

1. 搭建docker

這裡我直接用的是docker-compose部署,所以需要提前安裝好compose。
既然要用compose那麼yml文件自然是少不瞭的。

首先要新建一個目錄,並在目錄中新建一個yml文件

在這裡插入圖片描述

文件的內容如下:

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    volumes:
      - ./data:/data
    ports:
      - "2181:2181"
       
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME:127.0.0.1
      KAFKA_MESSAGE_MAX_BYTES: 2000000
      KAFKA_CREATE_TOPICS: "Topic1:1:3,Topic2:1:1:compact"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - ./kafka-logs:/kafka
      - /var/run/docker.sock:/var/run/docker.sock
 
  kafka-manager:
    image: sheepkiller/kafka-manager
    ports:
      - 9020:9000
    environment:
      ZK_HOSTS: zookeeper:2181

接著利用這個yml文件啟動我們的項目

$ docker-compose up -d

可以看到新建瞭三個容器

在這裡插入圖片描述

2.進入容器

我們通過以下命令進入到kafka容器的交互模式

$ docker exec -it kafkademo01_kafka_1 /bin/bash

因為高版本的kafka內置瞭zookeeper,所以我們無需進入zookeeper容器。所以yml文件中關於zookeeper的部署是可以省略的。

然後進入kafka的根目錄

$ cd /opt/kafka

3.修改配置文件

$ cd /config

在這裡插入圖片描述

首先要修改的是zookeeper的配置文件:zookeeper.properties
(註釋已刪除)

dataDir=/opt/kafka/zooLogs
clientPort=2182
maxClientCnxns=0
admin.enableServer=false

然後修改kafka的配置文件:server.porperties
(註釋已刪除)

############################# Server Basics #############################                                                                                                                                                                                                                                                                                                             
broker.id=0                                                                                                                                        
############################# Socket Server Settings #############################                                                                                                                                                                                                                                                                                              
listeners=PLAINTEXT://127.0.0.1:9093

############################# Socket Server Settings #############################                                                                      
listeners=PLAINTEXT://127.0.0.1:9093                                                                                                                    
num.network.threads=3                                                                                                                                   
num.io.threads=8                                                                                                                                        
socket.send.buffer.bytes=102400                                                                                                                         
socket.receive.buffer.bytes=102400
                                                          
socket.request.max.bytes=104857600                                                                                                                      
############################# Log Basics #############################                                                                                  
log.dirs=/opt/kafka/kafkaLogs                                                                                                                           
num.partitions=1                                                                                                                                        
num.recovery.threads.per.data.dir=1                                                                                                                     
############################# Internal Topic Settings  #############################                                                                                                   
offsets.topic.replication.factor=1                                                                                                                       
transaction.state.log.replication.factor=1                                                                                                               
transaction.state.log.min.isr=1                                                                                                                         
############################# Log Retention Policy #############################                                                                        
log.retention.hours=168                                                                                                                                                                                                                                               
log.segment.bytes=1073741824                                                                                                                            
log.retention.check.interval.ms=300000                                                                                                                  
############################# Zookeeper #############################                                                                                   
zookeeper.connect=127.0.0.1:2182                                                                                                       
zookeeper.connection.timeout.ms=18000                                                                                                                   
############################# Group Coordinator Settings #############################                                                                  
group.initial.rebalance.delay.ms=0                                                                                                                      
port=9093                                                                                                                                                
advertised.host.name=127.0.0.1                                                                                                                           
message.max.bytes=2000000                                                                                                                                
advertised.port=9093

4.測試kafka

以下是一些基本的命令

啟動zookeeper

zookeeper-server-start.sh ../config/zookeeper.properties

啟動kafka

kafka-server-start.sh ../config/server.properties

創建一個主題

kafka-topics.sh --create --zookeeper 127.0.0.1:2182 --replication-factor 1 --partitions 1 --topic test

查看創建的主題

kafka-topics.sh --list --zookeeper 127.0.0.1:2182

生產者

kafka-console-producer.sh --broker-list 127.0.0.1:9093 --topic test

消費者

kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9093 --topic test --from-beginning

到此這篇關於docker部署kafka的方法步驟的文章就介紹到這瞭,更多相關docker部署kafka內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: