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 等 ...