【发布时间】:2019-11-06 07:23:53
【问题描述】:
我们在 Docker 上使用单节点基本部署,包括以下服务
kafka
schemaregistry
zookeeper
示例:
# docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------------------
control-center /etc/confluent/docker/run Up 0.0.0.0:9021->9021/tcp
kafka-single-node_kafka_1 /etc/confluent/docker/run Up 0.0.0.0:9092->9092/tcp
kafka-single-node_schemaregistry_1 /etc/confluent/docker/run Up 0.0.0.0:8081->8081/tcp
kafka-single-node_zookeeper_1 /etc/confluent/docker/run Up 0.0.0.0:2181->2181/tcp, 2888/tcp, 3888/tcp
我们根据-https://docs.confluent.io/5.0.0/installation/docker/docs/installation/single-node-client.html在容器上创建服务
我们在 kafka 机器上创建主题,我们打算将数据注入主题分区
主题将在路径上的 kafka docker 容器机器上创建 - /var/lib/kafka/data
由于那台kafka docker机器上的/var只有100G,我们希望至少使用1T的大小
因此我们计划在操作系统中添加一个新磁盘 1T Byte (1000G)
一旦我们添加了巨大的磁盘,第二个动作是将磁盘挂载到/var/lib/kafka/data(所以数据文件夹将是1T大小)
但问题是 - 应该设置哪些 docker 配置文件和参数?
我们正在使用docker-compose.yml,其中包括以下用于 kafka 的部分
kafka:
image: confluentinc/cp-kafka:latest
depends_on:
- zookeeper
ports:
- 9092:9092
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
【问题讨论】:
-
是否安装了任何卷?看起来 docker-compose 还没有显示任何卷。如果是这样,容器内的数据将丢失,如果容器消失了。
-
据我所知目前没有
-
数据重要吗?或者,如果你丢了,也可以。
-
这是kafka机器!!,数据很重要
-
这个设置听起来不太安全,我不得不说。单节点,没有数据冗余,使用 docker compose 运行应用程序,还没有卷。如果发生任何崩溃,数据可能会损坏,那么无法保证挽救数据。我建议,你设置一个更好的环境、一个集群、有足够空间的卷,然后复制数据。
标签: docker apache-kafka docker-compose