安裝部署kafka

jar包下載

地址:http://kafka。apache。org/downloads

安裝部署kafka

部署

安裝解壓

[root@ecs-0002 opt]# tar -zvxf kafka_2。12-2。7。0。tgz -C /opt/

修改資料夾名稱

[root@ecs-0002 opt]# mv kafka_2。12-2。7。0 kafka

建立log目錄

[root@ecs-0002 kafka]# mkdir logs

修改配置檔案

[root@ecs-0002 kafka]# vi config/server。properties

#全域性唯一,不能重複,並且只能是整數,叢集下需要修改每個kafka的idbroker。id=0#網路請求執行緒數num。network。threads=3#用來處理磁碟IO執行緒數num。io。threads=8#傳送套接字的緩衝區大小socket。send。buffer。bytes=102400#接受套接字的緩衝區大小socket。receive。buffer。bytes=102400#請求套接字的緩衝區大小socket。request。max。bytes=104857600#kafka執行日誌的存放路徑log。dirs=/opt/kafka/logs#topci當前broker分割槽的個數num。partitions=1#用來恢復和清理data下資料的執行緒數num。recovery。threads。per。data。dir=1#segment檔案的保留時間,超時將被刪除log。retention。hours=168#配置zookeeper地址。叢集用逗號隔開,如192。168。3。40:2181,192。168。3。41:2181zookeeper。connect=localhost:2181

啟動kafka

啟動kafka之前需要先把ZK啟動。如果沒有單獨的ZK伺服器,可以啟動kafka自帶的ZK服務

-deamon 表示kafka是以守護程序的形式執行

[root@ecs-0002 kafka]# 。/bin/zookeeper-server-start。sh -daemon config/zookeeper。properties

[root@ecs-0002 kafka]# 。/bin/kafka-server-start。sh -daemon config/server。properties

docker部署

映象拉取

docker pull wurstmeister/zookeeper

docker pull wurstmeister/kafka

啟動

啟動zookeeper

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

啟動kafka

docker run -d ——name kafka ——publish 9092:9092 ——link zookeeper ——env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 ——env KAFKA_ADVERTISED_HOST_NAME=localhost ——env KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka:latest

docker-compose部署

定義docker-compose。yml

version: ‘3’services: zookeeper: image: wurstmeister/zookeeper ports: - “2181:2181” kafka: image: wurstmeister/kafka depends_on: [ zookeeper ] ports: - “9092:9092” environment: KAFKA_ADVERTISED_HOST_NAME: 127。0。0。1 KAFKA_CREATE_TOPICS: “test:1:1” KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

啟動

docker-compose up -d