jar包下載
地址:http://kafka。apache。org/downloads
部署
安裝解壓
[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