一、交换机的属性
Name:交换机的名称
Type:交换机的类型,direct,topic,fanout,headers
Durability:是否需要持久化
autodelete:假如没有队列绑定到该交换机,那么该交换机会自动删除
Internal:当前交换机是否用户rabbitmq内部使用不常用,默认为false
Argurements:扩展参数,用户扩展AMQP 定制化协议
二、交换机的类型
2.1 直接交换机 direct exchange
所有发送到direct exchange的消息都会被投递到route key名称和queue名称相同的queue上
举个栗子
public class DirectExchangeProductor {
public static void main(String[] args) throws IOException, TimeoutException {
//创建连接工厂
ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.setHost("10.101.102.167");
connectionFactory.setPort(5672);
connectionFactory.setVirtualHost("test_vm1");
connectionFactory.setUsername("admin");
connectionFactory.setPassword("admin");
//创建连接
Connection connection = connectionFactory.newConnection();
//创建channel
Channel channel = connection.createChannel();
//定义交换机名称
String exchangeName = "testDirect1";
//定义routingKey
String routingKey = "testExchange1.queue1";
//消息体内容
String messageBody = "hello world ";
channel.basicPublish(exchangeName,routingKey,null,messageBody.getBytes());
}
}
public class DirectExchangeConsumer {
public static void main(String[] args) throws IOException, TimeoutException, InterruptedException {
//创建连接工厂
ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.setHost("10.101.102.167");
connectionFactory.setPort(5672);
connectionFactory.setVirtualHost("test_vm1");
connectionFactory.setUsername("admin"