安装插件
复制插件到Docker容器 /plugins 目录
docker cp 文件名 容器名:/plugins
-
查看插件 rabbitmq-plugins list
-
安装插件 rabbitmq-plugins enable 插件名
使用插件
声明一个CustomExchange 并且设置type [第二个参数] 为 x-delayed-message 延时消息,并且设置参数 x-delayed-type 为 直连交换机类型
@Bean
public Queue queue() {
return new Queue(MY_QUEUE, true, false, false);
}
@Bean
public CustomExchange exchange() {
Map<String, Object> map = new HashMap<>();
map.put("x-delayed-type", "direct");
return new CustomExchange(MY_DEKAYED_EXCHANGE, "x-delayed-message", true, false,map);
}
@Bean
public Binding binding() {
return BindingBuilder.bind(queue()).to(exchange()).with(MY_QUEUE).noargs();
}
插件使用
最后,发送消息时设置Head x-delay 参数 的时间即可
rabbitTemplate.send(RabbitMQConfig.MY_DEKAYED_EXCHANGE, RabbitMQConfig.MY_QUEUE,
MessageBuilder.withBody(couponNo.getBytes(StandardCharsets.UTF_8))
.setHeader("x-delay", 3000).build());