成功登录界面,可查看MQ详情
rabbitmq是一种跨进程、异步的通信机制,用于上下游传递消息。由消息系统来确保消息的可靠传递。
1).rabbitmq的作用: 消峰、异步、解耦
2).rabbitmq的特点:
可靠性:通过持久化、传输确认、发布确认等操作保证可靠性
灵活的路由:在消息进入队列之前,通过Exchange来路由消息
对于典型的路由功能,Rabbit已经提供了一些内置的Exchange来实现
针对更复杂的路由功能,可以将多个Exchange绑定在一起,也通过插件机制实现自己的Exchange
消息集群:多个RabbitMQ服务器可以组成一个集群,形成一个逻辑Broker
高可用:队列可以在集群中的机器上进行镜像,实现故障快速切换
跟踪机制:如果消息异常,RabbitMQ提供了消息的跟踪机制
rabbitmq的六种工作模式:
1).simple简单模式
一个队列一个消费者
消费者监听消息队列,消息队列中有消息就消费掉,消息队列中数据也会清除
配置queue_simple队列
发送Message到queue_simple队列(自己用postman发就行)
监听queue_simple队列
调用simpleSend接口
消费者控制台
成功消费信息!
2).work工作模式
一个队列多个消费者
c1和c2共同监听一个消息队列,但是一个消息只能被一个消费者消费
配置queue_work队列
发送10条Message到queue_work队列
监听queue_work队列.两个消费者同时监听queue_work队列
调用simpleSend接口.查看消费者控制台
只能被一个监听者消费!
3).publish/subscribe发布订阅模式
生产者将消息不是直接发送到队列,而是发送到交换机,没有路由规则
然后由交换机发送给两个队列,两个消费者各自监听一个队列,来消费消息
配置fanOutExchange绑定queue_simple和queue_work队列
发送消息到fanOutExchange交换机
还是监听queue_simple和queue_work队列
调用fanOutSend接口,消费者控制台如下
消息被queue_simple和queue_work01消费,因为queue_work和queue_work01监听同一个队列,只能被一个人消费.
4).routing路由模式
消息生产者将消息发送给交换机按照路由判断
交换机根据路由的key,只能匹配上路由key对应的消息队列,对应的消费者才能消费消息
创建三个队列routing-queue1,routing-queue2,routing-queue3对应不同的routekey:info,waring,error。
发送消息到directExchange
分别对三个队列进行监听
调用routeSend接口
5).topic 主题模式(模糊的路由规则)
消息产生者产生消息后把消息交给交换机
交换机根据key的规则模糊匹配到对应的队列,由队列的监听消费者接收消息消费
在exchange_topic交换机下创建queue_topic1,queue_topic2队列,匹配单个和多个后缀
发送信息到exchange_topic交换机
监听queue_topic1,queue_topic2
调用sendTopic接口
第一次发送到exchange_topic交换机,根据route"#"匹配规则(# 零个或多个),可以发送到queue_topic1中.
第二次发送到exchange_topic交换机,根据route"*"匹配规则(单个)和"#"匹配规则(# 零个或多个),可以发送到queue_topic1和queue_topic2中.
所以queue_topic1会收到两次Message,而queue_topic2只能收到一次
6).RPC(远程过程调用)模式
RPC模式与 work工作模式差不多(都不需要交换器、都需要指定唯一的消息队列进行消息传递)
RPC模式是一个回环结构,客户端C先发送消息到消息队列
远程服务端S获取消息,然后再写入另一个消息队列,向原始客户端 Client 响应消息处理结果