![]() |
1
1
这个问题中有趣的问题与多克无关,让我们暂时把它放在一边。
这里有用的工具是工作队列; RabbitMQ 对于某些规模的问题,一种简单的方法是说原始输入和最终输出是单个系统上的单个文件。您可以将其分解为足够小的部分,使它们能够容纳在消息有效负载中,并且响应也可以容纳消息有效负载。运行一个进程来读取输入并填充工作队列;运行一些worker,然后运行一个进程来读回输出。
如果您使用Python作为实现语言,也要考虑 Celery 作为一个管理框架。 要运行这个,您需要运行三个独立的进程。
Docker或Kubernetes会如何融入这张照片?需要注意的是,这两种技术都不能提供类似于工作队列的功能,而且共享文件系统可能是不稳定的。尽管如此,我在上面提到了三个不同的进程,您可以将它们打包成三个Docker映像,然后将它们部署到Kubernetes中。我说过您不必只运行一个worker,Kubernetes部署将允许您运行5个、10个或50个相同的worker副本,RabbitMQ将负责确保它们都有工作要做。 |