安装
这个地方我使用的docker来安装的RabbitMQ,注意点是docker的登录必须使用docker ID来登录才能pull下载镜像,使用email是不能使用pull命令。
docker下搜索一下rabbitmq
docker search rabbitmq:management
下载rabbitmq
docker pull rabbitmq:management
运行rabbitmq
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 docker.io/rabbitmq:3-management
安装完成也可以运行了,然后在浏览器输入http://http://localhost:15672/
,跳转到RabbitMQ的登录界面,输入默认的用户名和密码,用户名和密码一样,都是guest。
guest的账户只能限制localhost访问,所以,我们得重新创建一个账户
添加用户
先登录guest这个账户,然后选择Admin这个选项框
然后添加Username,password和Tags,这个Tags给设置一个最高权限administrator,然后最后点“Add user”添加用户
这时候添加的用户是No access,是不能访问的,我们还是需要给他设置权限
然后点击root这个用户,对root用户进行管理,点击set permission就可以增加权限了,上面那一行黄色的提示也就消失不见了
使用
项目目录结构图
添加Maven依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--rabbitMQ--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> </dependencies> 复制代码
Main启动类
@SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class, args); } } 复制代码
RabbitMQConfig配置类
@Configuration public class RabbitMQConfig { /** * 创建一个名叫hello的队列 * @return */ @Bean public Queue queue() { return new Queue("hello"); } } 复制代码
RabbitProducerController 生产者控制器
@RestController public class RabbitProducerController { @Autowired private AmqpTemplate rabbitTemplate; /** * 生产者向hello消息队列发送消息 * @param name * @return */ @RequestMapping("/produce") public String produce(@RequestParam String name) { rabbitTemplate.convertAndSend("hello", "send msg is " + name); return "消息发送成功"; } } 复制代码
RabbitConsumer 消费者
@Component @RabbitListener(queues = "hello") public class RabbitConsumer { @RabbitHandler public void process(String msg) { System.out.println("------------" + msg); } } 复制代码
application.properties配置
#配置rabbitMQ spring.rabbitmq.host=127.0.0.1 spring.rabbitmq.port=5672 spring.rabbitmq.username=root spring.rabbitmq.password=root 复制代码
然后我们运行Main类的main方法启动springboot
在浏览器中输入http://localhost:8080/produce?name=lisi
然后看下消费者已经接收到消息并输出