Android敲累了,玩玩java
安装
这个地方我使用的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
然后看下消费者已经接收到消息并输出
