以下五步转自:https://blog.csdn.net/shushugood/article/details/81076917 部分内容稍有修改。
一、安装RabbitMQ需要先安装Erlang语言开发包 下载地址https://www.erlang.org/downloads本文下载的是22.2版本。下载安装完成后(例如安装在E:\erl10.6下) 需要添加环境变量 ERLANG_HOME=E:\erl10.6 之后在Path中添加 %ERLANG_HOME%\bin
二、安装RabbitMQ Server 下载地址https://www.rabbitmq.com/download.html本文下载的是3.8.2版本。下载完成后(例如安装在E:\RabbitMQ Server\rabbitmq_server-3.8.2)添加环境变量RABBITMQ_SERVER=E:\RabbitMQ Server\rabbitmq_server-3.8.2 在path中添加 %RABBITMQ_SERVER%\sbin
三、以管理员身份运行cmd.exe,进入目录 E:\RabbitMQ Server\rabbitmq_server-3.8.2\sbin(RabbitMQ Server安装目录),运行cmd命令:rabbitmq-plugins.bat enable rabbitmq_management
四、以管理员身份运行cmd.exe,运行命令:net stop RabbitMQ && net start RabbitMQ。启动RabbitMQ Server,
五、在浏览器输入地址:http://localhost:15672,输入默认账号:guest 密码:guest。
补充:
在搭建完环境之后启动已有java项目连接mq,配置文件
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
virtual-host: center
发现报错
2020-02-03 15:55:23 [AMQP Connection 127.0.0.1:5672] ERROR com.rabbitmq.client.impl.ForgivingExceptionHandler 124 - An unexpected connection driver error occured
java.net.SocketException: socket closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288)
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91)
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:571)
at java.lang.Thread.run(Thread.java:748)
2020-02-03 15:55:23 [SimpleAsyncTaskExecutor-1] ERROR org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer 1185 - Failed to check/redeclare auto-delete queue(s).
org.springframework.amqp.AmqpIOException: java.io.IOException
at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:71)
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:368)
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:573)
at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1430)
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1411)
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1387)
at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:336)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.redeclareElementsIfNecessary(SimpleMessageListenerContainer.java:1171)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1422)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: null
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:105)
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:101)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:123)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:381)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:909)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:859)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:799)
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:352)
... 8 common frames omitted
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - vhost center not found, class-id=10, method-id=40)
at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:32)
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:366)
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:229)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:117)
... 13 common frames omitted
将配置文件中的virtual-host改为 / 即可成功启动 (rabbit web管理界面上会显示vhost名字,在没有自定义vhost时,默认的vhost是 ‘/’ )
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
virtual-host: /