最近启动一个spring boot与rabbitMQ结合的项目总是报以下错误:
reply-code=503, reply-text=COMMAND_INVALID - unknown exchange type 'x-delayed-message'
一、原因分析
延时队列报错
ShutdownSignalException: connection error; protocol method:#method<connection.close>(reply-code=503, reply-text=COMMAND_INVALID - unknown exchange type 'x-delayed-message', class-id=40, method-id=10)
代表没有找到对应x-delayed-message的exchange type
二、解决方法
1、下载rabbitMQ插件
进入rabbitMQ列表
根据自己安装的rabbitMQ版本进行下载插件
二、安装插件
拷贝到rabbitMQ安装目录下的plugin目录下
三、启动插件
四、使用方法
//...elided code ...
Map<String,Object> args = new HashMap<String,Object>();
args.put("x-delayed-type","direct");
channel.exchangeDeclare("my-exchage","x-delayed-message",true,false,args);
//... more code