設置exchange為持久化之後,並不能保證消息不丟失,因為此時發送往exchange中的消息並不是持久化的,需要配置delivery_mode=2指明message為持久的。
在FanoutExchange中,會將發送的消息封裝為 Message 對象,該對象中有壹個 MessageProperties 對象,用來指定消息的屬性,而 MessageProperties 中默認的 deliveryMode 屬性為 MessageDeliveryMode.PERSISTENT ,查看源碼得知,MessageDeliveryMode.PERSISTENT = 2,所以 FanoutExchange 發送的消息默認就是持久化的。