发消息:
public class Send { private final static String EXCHANGE_NAME = "exchange_fanout"; public static void main(String[] argv) throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("81.71.147.62"); factory.setUsername(""); factory.setPassword(""); factory.setVirtualHost("/dev"); factory.setPort(5672); try ( //JDK7语法 或自动关闭 connnection和channel //创建连接 Connection connection = factory.newConnection(); //创建信道 Channel channel = connection.createChannel()) { //绑定交换机,fanout扇形,即广播类型 channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.FANOUT); String message = "Hello World pub !"; channel.basicPublish(EXCHANGE_NAME, "", null, message.getBytes(StandardCharsets.UTF_8)); System.out.println(" [x] Sent '" + message + "'"); } } }
你搞多少个都可以!都是可以收到的
队列:
public class Recv1 { private final static String EXCHANGE_NAME = "exchange_fanout"; public static void main(String[] argv) throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("81.71.147.62"); factory.setUsername(""); factory.setPassword(""); factory.setVirtualHost("/dev"); factory.setPort(5672); //消费者一般不增加自动关闭 Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); //绑定交换机,fanout扇形,即广播类型 channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.FANOUT); //获取队列(排它队列) String queueName = channel.queueDeclare().getQueue(); //绑定队列和交换机,fanout交换机不用指定routingkey channel.queueBind(queueName,EXCHANGE_NAME,""); DeliverCallback deliverCallback = (consumerTag, delivery) -> { String message = new String(delivery.getBody(), "UTF-8"); System.out.println(" [x] Received '" + message + "'"); }; //自动确认消息 channel.basicConsume(queueName, true, deliverCallback, consumerTag -> { }); } }
本文作者为DBC,转载请注明。