RabbitMq三种常用交换机的特征说明:
通常交换机只有一个,因为是做为转发消息到队列中去的作用。
一:路由键交换机应用:
1.配置声明:
创建一个交换机 ->直连型交换机,两个队列 ->队列男,队列女。
队列男绑定直连型交换机,路由键为男
队列女绑定直连型交换机,路由键为女
队列男 作为处理 性别为男的用户的消息
队列女 作为处理 性别为女的用户的消息
2.生产者发送消息:
指定发送给哪个交换机(例如:直连型交换机),路由键(前台传递过来,用户性别为男传递男,用户性别为女传递女),消息前台传递过来。
这样就会根据发送消息方法所写的交换机在配置中所绑定的路由键,和前台传递的路由键,如果有对应关系的话,
就会把消息转发给配置中的该交换机所绑定的相对应的队列,这样消息就会分别进入了两个队列
3.消费者:
创建两个类分别监听两个队列
接收男队列消息的处理器处理男的的消息
接收女队列消息的处理器处理女的的消息
二:无路由键交换机应用:
配置声明:
创建一个交换机 两个队列 两个队列都绑定这个交换机 发送消息时指定发送给这个交换机 这个交换机会把消息发送给绑定类这个交换机
的所有队列
消费者监听这些队列,消费消息
三:通配符路由键 交换机
创建一个交换机 两个队列 如队列一绑定这个交换机设置路由键为a.*,队列二绑定这个交换机设置路由键为a.#
发送消息时指定发送给这个交换机,路由建为前台传递,如果前台传递的路由建为a.b,那么消息会发送给队列1,队列2,
如果前台传递的路由键为a.c.d 那么消息只会发送给队列2
消费者 监听这些队列,消费消息。
通配符交换机 其实实现了 无路由键交换机 和路由键交换机
如果通配符交换机指定的路由键为#就会可以接收所有消息 ,会向所有绑定了这个交换机的队列中发送消息 ,相当于 无路由键交换机(扇形交换机),
如果通配符交换机的路由键中不包含任何通配符就相对与直连型交换机(路由键交换机)