复制 AMQP.BasicProperties.Builder builder=newAMQP.BasicProperties.Builder();builder.expiration("6000");AMQP.BasicProperties properties=builder.build();channel.basicPublish(exchangeName,routingKey,mandatory,properties,"msg body".getBytes()); 使用这种方式,消息即使过期,也不一定会被马上丢弃,因为消息是否过期是...
void basicPublish(String exchange, String routingKey, BasicProperties props, byte[] body) throws IOException; 1. 其中props 参数可为消息体赋予多种的功能特性。BasicProperties的属性有以下: String contentType, //消息内容的类型 String contentEncoding, //消息内容的编码格式 Map<String,Object> headers,//he...
channel.basicPublish(exchangeName,routeKey,MessageProperties.PERSISTENT_TEXT_PLAIN,msg)或者: BasicProperties basicProperties=newAMQP.BasicProperties.Builder().deliveryMode(2).build();// deliveryMode为1是非持久channel.basicPublish(exchangeName,routeKey,basicProperties,msg) 生产者的可靠性 生产者的消息确认叫做con...
通过设置 BasicProperties 的 deliveryMode 属性为 2,将消息标记为持久化消息。例如:
basicProperties: properties, body: Encoding.UTF8.GetBytes(message)); Console.WriteLine($"{DateTime.Now}队列:{queueName}发送消息:{message}"); } } }//////消费延时队列///publicstaticvoidConsumer_delay(){//死信交换机stringdlxexChange ="dlx.exchange";//死信队列stringdlxQueueName ="dlx.queue";v...
//生产者发送消息,将消息设置为TTL消息AMQP.BasicPropertiesproperties=newAMQP.BasicProperties().builder().expiration("10000").build(); 修改队列参数argument的特殊属性: arguments.put("x-dead-letter-exchange",EXCHANGE_DIRECT_DEAD);//死信交换机arguments.put("x-dead-letter-routing-key","routingkey_direct...
headers.put("retry-count",retryCount);//重新发送到MQ中AMQP.BasicPropertiesbasicProperties=newAMQP.BasicProperties().builder().contentType("text/plain").headers(headers).build(); channel.basicPublish(msg.getMessageProperties().getReceivedExchange(), ...
BasicPublish(stringexchange,stringroutingKey,boolmandatory =false,IBasicProperties basicProperties = null,ReadOnlyMemory<byte> body =default) exchange: 交换器的名称,如果留空则会推送到默认交换器。 routingKey: 路由键,交换器根据路由键将消息存储到相应的队列之中。
Channel对象在发送消息时,有一个BasicProperties类型的参数,该参数中可以设置一些消息的属性,其中就包括是否持久化的 deliveryMode 属性,2表示持久化消息。 将队列和消息进行持久化可以保证大部分场景下RabbitMQ宕机重启后消息不丢失,但并不能100%保证,因为RabbitMQ接收...
channel.basicPublish(DlxConsumer.NORMAL_HELLO_EXCHANGE,DlxConsumer.NORMAL_HELLO_QUEUE, basicProperties, msg.getBytes(StandardCharsets.UTF_8)); (2)、消费者创建信道 声明普通队列 使用arguments绑定死信队列、死信路由、设置队列最大长度等 /* start--- 普通正常队列 --- */ Map<String,Object> arguments ...