rabbit mq 订阅模式
模型:
解读:
1.一个生产者,多个消费者
2.每个消费者都有自己的队列
3.生产者没有直接把消息发送道队列,而是发送到了交换机、转发器 exchange
4.每个队列都要绑定在交换机上。
5.生产者发送的消息经过交换机到大队列就你呢个实现一个消息被多个消费者消费。
场景:
注册——> 邮件——>短信 …
Channel chanel = connection.createdChannel();
//声明交换机
chanel.exchangeDeclare(EXCHANGE_NAME,"fanout");
//发送消息
String msg = "hello";
chanel.basicPublish(EXCHANGE_NAME,"",null,msg.getBytes())
chanel.close();
connection.close();
注意:
在rabbitmq 中交换机没有储存能力,只有队列有储存能力,在上面的代码中会丢失消息。
Exchange(交换机 转换机)
一方面是接收生产者的消息,另一方面是向队列推送消息。
- Fanout Exchange(不处理路由键)
- Direct Exchange
- Topic Exchange
将路由键和某模式匹配。
#匹配一个或者多个
*匹配一个