首先下载Erlang,因为rabbitmq是用Erlang写的
下载: https://www.erlang.org/downloads.
安装就默认的安装就行,安装路径你可以改
下载安装完成添加系统环境变量
ERLANG_HOME
值为erlang的安装地址
然后双击系统变量path,添加
%ERLANG_HOME%\bin
在cmd输入erl,看到版本号就说明erlang安装成功了
接下来下载rabbitmq
下载: https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.7/rabbitmq-server-3.7.7.exe.
安装过程还是一样,按照默认的,自己选择安装路径
接下来安装RabbitMQ-Plugins
进入rabbitmq_server-3.7.3\sbin文件夹cmd输入命令
rabbitmq-plugins enable rabbitmq_management
再配置个环境变量
RABBITQM_SERVER
路径为rabbitmq_server-3.7.7的安装路径
然后再path中添加这个
%RABBITQM_SERVER%\sbin
接着你发现开始菜单栏有start和stop,这是启动和停止的文件,双击start启动就行
然后访问
http://localhost:15672
默认用户名和密码都是guest
你可以在sbin文件夹下执行创建一个用户
rabbitmqctl add_user 用户名 密码
再看一下现在的用户
rabbitmqctl list_users
然后给新建的用户赋予权限
rabbitmqctl set_user_tags 用户名 administrator
这是最高权限。
下面就是springboot项目的搭建了(一个最简单的demo)
首先创建2个项目rabbitmq-sender和rabbitmq-receiver
先创建rabbitmq-sender
pom.xml需要的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 添加springboot对amqp的支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
SenderConf
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @创建人 FengKe
* @创建时间 2020/8/20 19:36
* @描述
*/
@Configuration
public class SenderConf {
@Bean
public Queue queue() {
return new Queue("messagequeue");
}
}
TestSend
import com.feker.rabbitmq.sender.service.HelloSender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @创建人 FengKe
* @创建时间 2020/8/20 20:02
* @描述
*/
@Controller
public class TestSend {
@Autowired
private HelloSender helloSender;
@ResponseBody
@GetMapping("/testqueue")
public void testRabbit() {
helloSender.send();
}
}
HelloSender
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @创建人 FengKe
* @创建时间 2020/8/20 19:39
* @描述
*/
@Component
public class HelloSender {
@Autowired
private AmqpTemplate template;
public void send() {
template.convertAndSend("messagequeue","hello,rabbit~");
}
}
application.properties
server.port=8093
spring.application.name=spirng-boot-rabbitmq-sender
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=用户名
spring.rabbitmq.password=密码
接下来是rabbitmq-receiver
pom.xml和上一个一样
HelloReceive
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
/**
* @创建人 FengKe
* @创建时间 2020/8/20 19:44
* @描述
*/
@Component
public class HelloReceive {
@RabbitListener(queues="messagequeue") //监听器监听指定的Queue
public void processC(String str) {
System.out.println("Receive:"+str);
}
}
application.properties
server.port=8094
spring.application.name=spirng-boot-rabbitmq-receiver
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=用户名
spring.rabbitmq.password=密码
项目搭建已经完成,接下来是在http://localhost:15672网页上了
在这里添加一项名称为messagequeue的queues就可以了,
然后再去这个页面
确保你的用户状态和我这一样,如果不一样,就在这可以直接就该一下啊
接下来启动接收者,在启动发送者,
在网页输入
localhost:8093/testqueue
然后看接收者的控制台就能看到接收结果了