RabbitMQ是否在磁盘上序列化每个入站消息?

RabbitMQ是否在磁盘上序列化每个入站消息?,rabbitmq,Rabbitmq,我将RabbitMQ评估为web应用程序的异步中间层。我担心的是,作为一致性模型,它会将收到的每一条消息写入磁盘。这是真的还是优化了内存中的队列并不时将其序列化到磁盘 您可以将消息标记为持久消息或临时消息,并将队列配置为持久消息或非持久消息。如果消息是暂时的,或者发送到非持久队列,则根本不需要将其写入磁盘 对于发送到持久队列的持久消息,只有在无法立即传递消息时,才会将其写入磁盘。至少,这是我从工作方式推断出来的:确认表示消息已被RabbitMQ代理安全接受,并且在消息写入磁盘或传递给使用者时发生

我将RabbitMQ评估为web应用程序的异步中间层。我担心的是,作为一致性模型,它会将收到的每一条消息写入磁盘。这是真的还是优化了内存中的队列并不时将其序列化到磁盘

您可以将消息标记为持久消息或临时消息,并将队列配置为持久消息或非持久消息。如果消息是暂时的,或者发送到非持久队列,则根本不需要将其写入磁盘

对于发送到持久队列的持久消息,只有在无法立即传递消息时,才会将其写入磁盘。至少,这是我从工作方式推断出来的:确认表示消息已被RabbitMQ代理安全接受,并且在消息写入磁盘或传递给使用者时发生

报告中还有一条旁白提到:

而且,RabbitMQ不会对每条消息执行
fsync(2)
——它可能只是保存到缓存中,而不是真正写入磁盘