springboot 整合 rabbitmq,请问 批量消费消息能否保证消息不丢失

我的业务需要一次性获取 某个队列里的所有消息,然后进行处理,我不知道该如何保证数据的安全性。请教各位大牛

我现在是获取到了队列里所有的消息数量,然后通过循环获取到了,所有的消息,但是这样获取到消息后,队列里的消息就删除了,能否我获取到所有消息,然后做完处理后再去进行手动的 应答。

                                  /**
             * 获取该队列里的消息数量
             */
            AMQP.Queue.DeclareOk declareOk = rabbitTemplate.execute(new ChannelCallback<AMQP.Queue.DeclareOk>() {
                public AMQP.Queue.DeclareOk doInRabbit(Channel channel) throws Exception {
                    return channel.queueDeclarePassive(QueueConfig.DIRECT_QUEUE_NAME);
                }

            });
            System.out.println("队列消息数量:"+declareOk.getMessageCount());

            //所有消息集合
            List<caseSea> allList = new ArrayList<>();
            for (int i = 0; i < declareOk.getMessageCount(); i++) {
                Object msg = rabbitTemplate.receiveAndConvert(QueueConfig.DIRECT_QUEUE_NAME);

                List<caseSea> list = new ArrayList<>();
                if(msg !=null){
                    list = (List<caseSea>) msg;
                }
                allList.addAll(list);

消息队列有确认机制来保证数据的安全性。
https://www.jianshu.com/p/4616cb865558

采用确认机制即可,要求服务端返回ack