channel.exchangeDeclare(exchange, "direct", true, false, null);
第一个参数:交换组名字,
第二个参数:队交换组类型:三种常用的Exchange(Direct、Fanout 、Topic),
a) 如果是Direct类型,则会将消息中的RoutingKey与该Exchange关联的所有Binding中的BindingKey进行比较,如果相等,则发送到该Binding对应的Queue中;
b) 如果是 Fanout 类型,则会将消息发送给所有与该 Exchange 定义过 Binding 的所有 Queues 中去,其实是一种广播行为;
c)如果是Topic类型,则会按照正则表达式,对RoutingKey与BindingKey进行匹配,如果匹配成功,则发送到对应的Queue中;
channel.queueDeclare(queue, true, false, false, null);
第一个参数:队列名字,
第二个参数:队列是否可持久化即重启后该队列是否依然存在,
第三个参数:该队列是否时独占的即连接上来时它占用整个网络连接,
第四个参数:是否自动销毁即当这个队列不再被使用的时候即没有消费者对接上来时自动删除,
第五个参数:其他参数如TTL(队列存活时间)等。
channel.queueBind(queue, exchange, routingKey);
第一个参数:队列名字,
第二个参数:交换组名称;
第三个参数,路由key。