rabbitMQ queue属性】的更多相关文章

开发十年,就只剩下这套Java开发体系了 >>>   创建队列时指定参数 队列属性:x-message-ttl 可以控制被publish到queue中的message 被丢弃前能够存活的时间,当某个message在queue 存留的时间超过了配置的TTL值 我们就说该message“已死”.值得注意的是,当一个message被路由到多个queue中时,其可以在不同的时间死掉,或者可能有的不会出现死掉的情况.(在某个queue中的某个message的 死亡不会对相同message在其他qu…
方法: 1.QueueDeclare 声明队列 public static QueueDeclareOk QueueDeclare(String queue, Boolean durable, Boolean exclusive, Boolean autoDelete, IDictionary<String, Object> arguments); queue:声明的队列名称 durable:是否持久化,是否将队列持久化到mnesia数据库中,有专门的表保存我们的队列声明. exclusive…
消息属性 消息有14个属性,最常用的几种: deliveryMode:持久化属性 contentType:编码 replyTo:指定一个回调队列 correlationId:消息id mandatory标志位:当mandatory标志位设置为true时,如果exchange根据自身类型和消息routeKey无法找到一个符合条件的queue,那么会调用basic.return方法将消息返还给生产者:当mandatory设为false时,出现上述情形broker会直接将消息扔掉. immediate…
RabbitMQ does not allow re-declaring a queue with different values of parameters such as durability, auto delete, etc. Some parameters could be configured both by queue parameter and server-side policies, but if both are set, queue parameters win. So…
多个Consumer的消息分发 之前讲过一个queue对应一个consumer的小例子, 但是在实际项目中,一个consumer肯定是不够的,queue中的消息过多.一个consumer明显会处理过慢,等待时间过长.这时候就需要多个consumer来缓解压力. 消息发布端 无论是创建connection还是创建channel与之前的步骤都是一样的,在上面我们使用的是默认的交换机.在这里可以自己声明一个交换机 这里是与上个例子不同的地方,创建了exchange,把queue绑定到了交换机上.然后去…
1.Message TTL message在队列queue中可以存活多长时间,以毫秒为单位:发布的消息在queue时间超过了你设定的时间就会被删除掉. channel.queueDeclare("test", true, false, false, new HashMap<String, Object>()); 2.Auto expire auto expire  设置当前的queue在指定的时间内,没有consumer.basic.get也就是未被访问,就会被删除. 3.…
一 整合 由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的项目地址https://github.com/247292980/spring-boot 以整合功能 spring-boot,FusionChart,thymeleaf,vue,ShardingJdbc,mybatis-generator,微信分享授权,drools,spring-security,spring-jpa,webjars,Aspect,drools-drt 这次就来整合下简单的…
懒队列:lazy Queue,即用到的时候才会加载,3.6.0及之后新添加的.当新添加数据后,不会将其放入到内存中,而是将其放入到磁盘中. 普通队列:1).in-memory,数据直接放入到内存中. 2).on-desk,将数据放入到内存中的同时,还会将消息放到磁盘中,当内存压力升高或GC需要回收内存等情况,会将内存中的数据保存到磁盘中. 一些常见的组合: 1).lazy  + in-memory = 还是会将消息放到磁盘中,可以看到,只有几M的增长. 2).Default Queue + in…
最近研究RabbitMQ从本地获取配置,主要场景是RabbitMQ的连接配置如:ip地址这些需要从外部的配置服务器获取.面对这个问题,有两个解决方案,一个是用RabbitMQ原生的连接方式,但是如果使用了spring boot这个方法就有点笨拙,所以推荐使用重写RabbitMQ的工厂类ConnectionFactory类来进行连接RabbitMQ. public class RabbitmqConfig { @Bean public ConnectionFactory connectionFac…
简介 发送消息可以为消息指定一些参数 Delivery mode: 是否持久化,1 - Non-persistent,2 - Persistent Headers:Headers can have any name. Only long string headers can be set here. Properties: You can set other message properties here (delivery mode and headers are pulled out as…