使用Docker快速搭建Kafka開發環境

2021-09-25 17:15:49 字數 2715 閱讀 9963

1 zookeeper 1 kafka

這裡以我自己最常用的wurstmeister/kafka為例,使用docker-compose執行乙個只有乙個zookeeper node和乙個kafka broker的開發環境:

version: '2'

services:

zoo1:

image: wurstmeister/zookeeper

restart: unless-stopped

hostname: zoo1

ports:

- "2181:2181"

container_name: zookeeper

# kafka version: 1.1.0

# scala version: 2.12

kafka1:

image: wurstmeister/kafka

ports:

- "9092:9092"

environment:

kafka_advertised_host_name: localhost

kafka_zookeeper_connect: "zoo1:2181"

kafka_broker_id: 1

kafka_offsets_topic_replication_factor: 1

kafka_create_topics: "stream-in:1:1,stream-out:1:1"

depends_on:

- zoo1

container_name: kafka

這裡利用了wurstmeister/kafka提供的環境引數kafka_create_topics使kafka執行後自動建立topics。

1 zookeeper 2 kafka

zookeeper的部分與上個例子一樣,需要調整的是kafka部分。

這裡將第乙個kafka broker命名為kafka1,kafka_advertised_host_name引數設為kafka1,kafka_advertised_port設為9092。

對於第二個broker,相較第乙個broker所有kakfka1的部分改為kafka2,包括service name和coontainer name。同時kafka_broker_id設為2,kafka_advertised_port設為9093。

需要注意的是,當有不止乙個kafka broker時,這裡的hostname不能再設為localhost。建議設為本機ip位址。以mac為例,使用ipconfig getifaddr en0指令來獲取。

具體的docker-compose.yml檔案內容如下:

# zookeeper部分不變

kafka1:

image: wurstmeister/kafka

ports:

- "9092:9092"

environment:

kafka_advertised_host_name: 192.168.1.2

kafka_advertised_port: 9092

kafka_zookeeper_connect: "zoo1:2181"

kafka_broker_id: 1

kafka_offsets_topic_replication_factor: 1

kafka_create_topics: "stream-in:2:1,stream-out:2:1"

depends_on:

- zoo1

container_name: kafka1

kafka2:

image: wurstmeister/kafka

ports:

- "9093:9092"

environment:

kafka_advertised_host_name:

kafka_advertised_port: 9093

kafka_zookeeper_connect: "zoo1:2181"

kafka_broker_id: 2

kafka_offsets_topic_replication_factor: 1

depends_on:

- zoo1

container_name: kafka2

可以使用docker exec命令直接呼叫kafka容器內的指令碼來進行建立/刪除topic,啟動console producer等等操作。

如果本地存有與容器內相同的kafka版本檔案,也可以直接使用本地指令碼檔案。如上述docker-compose.yml檔案所示,kafka1的hostname即是kafka1,埠為9092,通過kafka1:9092就可以連線到容器內的kafka服務。

列出所有topics(在本地kafka路徑下)

$ bin/kafka-topics.sh --zookeeper localhost:2181 --list

列出所有kafka brokers

$ docker exec zookeeper bin/zkcli.sh ls /brokers/ids

ubuntu下使用Docker安裝kafka

首先拉取zookeeper kafka映象 docker pull wurstmeister zookeeper docker pull wurstmeister kafka啟動zookeeper docker run d name zookeeper restart always publish ...

使用Docker快速搭建Gitlab

1.配置docker swarm環境 參考 2.修改linux host centos 7.4的預設ssh埠為1234 sed i s port 22 port 1234 g etc ssh sshd config systemctl restart sshd3.安裝gitlab yum updat...

ELK 使用Docker快速搭建

elk 是三個開源專案的首字母縮寫,這三個專案分別是 elasticsearch logstash 和 kibana。elasticsearch 是乙個搜尋和分析引擎。logstash 是伺服器端資料處理管道,能夠同時從多個 採集資料,轉換資料,然後將資料傳送到諸如 elasticsearch 等 ...