rabbit mq 加了这参数 x-message-ttl flink就链接失败是啥原因 有用rabbitmq的没
继承父类RMQSource,把setupQueue()这个方法里边的queueDeclare(声明队列)的逻辑去掉就可以了,你如果只是读取队列的话不需要声明的
TTL 全称 Time To Live(存活时间/过期时间)。
当消息到达存活时间后,还没有被消费,会被自动清除。
RabbitMQ可以对消息设置过期时间,也可以对整个队列(Queue)设置过期时间。 在这里插入图片描述
/**** ttl:过期时间* 1 队列统一过期* 2 消息单独过期** 如果设置消息的过期时间,也设置了队列的过期时间,它以时间短的为准* 队列过期后,会将队列所有消息全部移除* 消息过期后,只有消息在队列顶端,才会去判断其是否过期(移除掉)*/ @Test public void testTLL() throws InterruptedException {队列统一过期//for (int i = 0; i <10 ; i++) {// //3. 发送消息// rabbitTemplate.convertAndSend("test_exchange_ttl", "ttl.hehe", "message tll....");// //Thread.sleep(200);//}///消息后处理对象,设置一些消息的参数信息MessagePostProcessor messagePostProcessor = new MessagePostProcessor() {@Overridepublic Message postProcessMessage(Message message) throws AmqpException {//1 设置message的信息message.getMessageProperties().setExpiration("5000");//消息的过期时间//2 返回该信息return message;}};///消息单独过期//rabbitTemplate.convertAndSend("test_exchange_ttl", "ttl.hehe", "message tll....", messagePostProcessor);for (int i = 0; i < 10; i++) {if(i==5){rabbitTemplate.convertAndSend("test_exchange_ttl", "ttl.hehe", "message tll....", messagePostProcessor);}else{//不过期消息rabbitTemplate.convertAndSend("test_exchange_ttl", "ttl.hehe", "message tll....");}}}
设置队列过期时间使用参数:x-message-ttl,单位:ms(毫秒),会对整个队列消息统一过期。设置消息过期时间使用参数:expiration。单位:ms(毫秒),当该消息在队列头部时(消费时),会单独判断这一消息是否过期。
如果两者都进行了设置,以时间短的为准。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。