JMS的可靠性分为3个方面:持久化、事务、签收。
持久化包括持久和非持久。
非持久:messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);当服务器宕机,消息就不存在了。
我们可以做个试验,使用messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);设置为非持久化模式,先用生产者产生3条消息发送给MQ,然后手动关闭MQ,再启动MQ,然后用consumer去消费,可以发现消费者什么都拿不到,也就是消息已经丢了,我们可以在MQ的前端管理页面看到,MQ里的消息数量是0。