gpt4 book ai didi

docker - 保留所有kafka主题的数据并注入(inject)不同的实例

转载 作者:行者123 更新时间:2023-11-30 10:56:32 24 4
gpt4 key购买 nike

我在 docker 图像中有一个 kafka 集群。

1)每次docker镜像启动时,我想将数据注入(inject)到kafka主题中。作为 docker 启动的一部分,它是一次性初始化过程

2) 上述步骤中使用的初始化数据来自预定义的场景。因此,数据将在主题中可用(作为预定义场景的一部分)。对于上述第 1 步,我如何将这些数据保存到一个文件中并注入(inject)到 docker 启动中

我在 dockerhub 中查找,找不到任何相关图像。

最佳答案

如果可能的话,我建议尝试将此作为 build 步骤的一部分。如果您将它作为构建的一部分进行,它将被缓存,并且您不必在每次启动容器时都重复它。

我在持久性存储(数据库)中使用的模式是这样的构建步骤:

docker 文件:

...
COPY setup.sh /code/setup.sh
RUN /code/setup.sh
...

setup.sh(伪代码)

./start_kafka.sh &  # start the service in the background
./wait_for_kafka_to_be_available.sh # If the service comes with good init scripts, they might already do this for you
./populate_data.sh # run a client which puts data into the queue
./stop_kafka.sh # Do a clean shutdown, a proper init script might provide this as well

现在当容器启动时,它应该会更快地读取持久化数据和启动。

如果由于某种原因你不能这样做,而你需要在运行时这样做,你可能最好使用一些初始化系统。您可以在这里找到一个示例(使用 s6 作为初始化系统)https://github.com/dnephin/docker-swarm-slave .它启动两项服务(dindswarm-slave),在您的情况下,其中一项服务将运行 wait_for_kafka_to_be_available.sh。/populate_data.sh 然后退出。

关于docker - 保留所有kafka主题的数据并注入(inject)不同的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32981972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com