2013-10-03 78 views

回答

5

您可以將消息標記爲持久或瞬態,並將隊列配置爲持久或不持久。如果消息是暫時的,或者發送到非持久隊列,則根本不需要寫入磁盤。

對於發送到持久隊列的持久消息,如果消息不能立即傳遞,則只會將消息寫入磁盤。至少,這是我從publisher confirms的工作方式推斷出的結果:確認表示消息已被RabbitMQ代理安全地接受,並且在或者消息被寫入磁盤時發生,它是傳遞給消費者。

還有一個預留,其中提到,second part of the tutorial

而且,RabbitMQ的並不爲每個消息做fsync(2) - 它可能只是保存到緩存,並沒有真正寫入到磁盤。

相關問題