帮助文档: https://www.rabbitmq.com/getstarted.html
1.0拉取docker镜像
docker pull rabbitmq:management
2.0执行下边命令 name 名字自己改 ,pass 密码 -p15672 对外端口 ,-p5672 对内端口 -p25672集群
docker run -di --name lipengRabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
3.0docker ps 查看docker 容器运行状态
4.0 登录阿里云开放端口
5.0springboot测试连接
1.0导入依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</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>org.springframework.amqp</groupId>
<artifactId>spring-rabbit-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2.0
在消息提供者配置mq地址
在消息消费者配置地址
3.0测试代码一个提供者两个消费者
@Service
public class Provider {
@Autowired
private AmqpTemplate amqpTemplate;
@Value("${log.order.exchange}")
private String exchangeName;
public void sendMessage(){
//1.交换机
//2.路由key
//3.消息内容
String msg ="你好朋友"+new Date();
amqpTemplate.convertAndSend(exchangeName,"",msg);
}
}
@Component
@RabbitListener(bindings =@QueueBinding(
value = @Queue(value = "${log.sms.queue}",autoDelete = "true"),
exchange = @Exchange(value = "${log.order.exchange}",type = ExchangeTypes.FANOUT)
))
public class service {
@RabbitHandler
public void process(String msg) {
System.out.println("SMS----------->接受到的的消息是:" + msg);
}
}
@Component
@RabbitListener(bindings =@QueueBinding(
value = @Queue(value = "${log.wexin.queue}",autoDelete = "true"),
exchange = @Exchange(value = "${log.order.exchange}",type = ExchangeTypes.FANOUT)
))
public class serviceWin {
@RabbitHandler
public void process(String msg) {
System.out.println("weixin----------->接受到的的消息是:" + msg);
}
}
@SpringBootTest
class SpringbootFanoutRabbitmqProviderApplicationTests {
@Autowired
private Provider sevice;
@Test
void contextLoads() {
sevice.sendMessage();
}
}
结果