fanout
我们可以使用下面的方法创建一个交换器。
1. channel.exchangeDeclare("netease", "topic");
通常我们的使用都是直接将消息发送给这个交换器,然后再由这个交换器去路由合适的队列。但是这样有个
问题,我们需要实现创建好很多的队列,然后再来绑定,有没有一个办法,我们可以在需要的时候自动创建
一个队列,我们消费者不在使用之后,就自动销毁呢?RabbitMQ其实为我们提供了一个临时队列的的方
法。
1. String queueName = channel.queueDeclare().getQueue();
这个queueDeclare()方法就是创建一个临时队列。既然是临时队列,那么获取这个队列的名称后。就可以
进行队列和交换器的绑定。
1. channel.queueBind(queueName, "netease", "");
当绑定好队列和交换器后,我们就可以开始我们这一节的正式编码了。
消息生产者:
1. import com.rabbitmq.client.Channel;
2. import com.rabbitmq.client.Connection;
3. import com.rabbitmq.client.ConnectionFactory;
4.
5. public class Exchange {
6.
7. private static final String EXCHANGE_NAME = "netease";
8.
9. public static void main(String[] argv) throws Exception {
10.
11. ConnectionFactory factory = new ConnectionFactory();
12. factory.setHost("localhost");
13. Connection connection = factory.newConnection();
14. Channel channel = connection.createChannel();
15.
16. channel.exchangeDeclare(EXCHANGE_NAME, "fanout");
17.
18. // 分发消息
19. for(int i = 0 ; i < 5; i++){