1.说明
2.消息提供者
package com.example.amqp.demo.fanout;
import com.example.amqp.demo.utils.RabbitMQUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import java.io.IOException;
public class Provider
{
public static void main(String[] args) throws IOException {
// 获取连接对象
Connection connection = RabbitMQUtils.getConnection();
// 创建通道
Channel channel = connection.createChannel();
// 通道绑定交换机 参数一:交换机名字 参数二:交换机的类型 fanout 代表广播
channel.exchangeDeclare("logs","fanout");
// 发送消息
channel.basicPublish("logs","",null,"fanout type message".getBytes());
// 释放资源
RabbitMQUtils.closeConnectionAndChanel(channel,connection);
}
}
3.消息消费者(若干个)
package com.example.amqp.demo.fanout;
import com.example.amqp.demo.utils.RabbitMQUtils;
import com.rabbitmq.client.*;
import java.io.IOException;
public class Customer1
{
public static void main(String[] args) throws IOException
{
Connection connection = RabbitMQUtils.getConnection();
Channel channel = connection.createChannel();
// 通道绑定交换机
channel.exchangeDeclare("logs","fanout");
// 创建临时队列
String queueName = channel.queueDeclare().getQueue();
// 绑定交换机和队列
channel.queueBind(queueName,"logs","");
// 消费消息
channel.basicConsume(queueName,true,new DefaultConsumer(channel){
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
System.out.println("消费者1:"+new String(body));
}
});
}
}
4.运行结果