如果此时没有工作人员在线(生产者-消费者模式),NATS 能否将消息保存在内存中?

Can NATS keep messages in memory if no workers are online at the moment (producer-consumers pattern)?

我想使用 NATS 在多个工作进程之间分配任务。如果我至少有一名工作人员“在线”,一切都会按预期进行,但如果没有工作进程,消息就会被丢弃,当我打开一名工作人员时,我没有收到任何消息(这些消息是在不在线时创建的) .

我知道如何用 RabbitMQ 来做,但是可以用 NATS 来做吗?

我在 Python 做项目,生产者进程在 aiohttp,工作进程也在 Python 并且做一些 CPU-繁重的任务。

您熟悉 JetStream 吗? JetStream 保留消息以便它们可以被重播。您可以将您的流配置为仅在消息被确认后才丢弃该消息。 不确定 python 客户端关于 JetStream 的状态,我知道它正在处理中。 https://github.com/nats-io/nats.py

到今天官方Python连接器不支持NATS/Jetsreamissue-209