我正在实施由Cloud Foundry上的多个应用程序组成的自然语言处理产品。 这些应用程序占用大量CPU(而不是I / O占用大量资源),通过RabbitMQ进行通信,并且大多数是在Python3中开发的。
这些Python3应用程序之一[1]消耗了兔子队列,并仅根据接收到的消息的有效负载执行给定任务。 此有效负载是独立的,即包含应用程序执行其工作所需的所有信息。
另一个应用程序[2]需要等待满足特定条件:例如,它首先需要接收一条有关“ topic1”的消息,然后接收一条有关“ topic2”的消息,然后该应用程序才能执行其工作。该处理将利用两条消息中的两个有效载荷。
现在的问题是如何确保可以同时放大[1]和[2]以跟上消息量的增加。
因此,对于[2],我可以看到两个选项:
消息主要由纯文本和序列化的numpy 300维单词嵌入组成。 每秒可能达到约1万条消息。处理将由运行的神经网络或NLP库组成。
关于如何最好地实现可伸缩体系结构的任何建议?