项目
页面发布的流程
页面发布流程:
1 | (1)管理员在前端点击发布页面,前端请求cms页面发布接口,执行页面静态化程序,页面静态化执行之后将静态页面存储在GridFS服务器中。 |
页面搜索流程:
RabbitMQ
RabbitMQ的作用
1 | 1、任务异步处理。 |
为什么使用RabbitMQ
1 | 1、使得简单,功能强大。 |
RabbitMQ原理
1 | 组成部分说明如下: |
入门demo
1 | 生产者操作流程如下: |
1 | public class Producer01 { |
1 | public class Consumer01 { |
RabbitMQ工作模式
RabbitMQ有以下几种工作模式
1 | 1、Work queues |
(1)work queue
入门demo就是工作队列模式
1 | 1、一条消息只会被一个消费者接收; |
(2)Publish/subscribe
1 | 1、每个消费者监听自己的队列。 |
2、交换机的类型
1 | * fanout:对应的rabbitmq的工作模式是 publish/subscribe (BuiltinExchangeType.FANOUT) |
案例
1 | // 发布订阅模式生产者(发布消息) |
1 | // 发布订阅的消费者1(接收消息) |
1 | // 发布订阅模式的消费者2(接收消息) |
publish/subscribe与work queues有什么区别。
1 | 区别: |
(3)Routing路由模式
路由模式:
1 | 1、一个交换机绑定多个队列,每个队列设置routingkey,并且一个队列可以设置多个routingkey |
routing模式和publish/subscribe的区别
1 | publish/subscribe模式在绑定交换机时不需要指定routingkey,消息会发送到每个绑定的交换机的队列。 |
案例
1 | //路由模式模式生产者(发送消息) |
1 | 路由模式消费者1(接收消息) |
1 | 路由模式消费者2(接收消息) |
(4)Topics
通配符模式
1 | 1、一个交换机可以绑定多个队列,每个队列可以设置一个或多个带通配符的routingkey。 |
topics与routing的区别
1 | topics和routing的基本原理相同,即:生产者将消息发给交换机,交换机根据routingkey将消息转发给与routingkey匹配的队列。 |
1 | 符号#:匹配一个或多个词,比如inform.# 可以匹配inform.sms、inform.email、inform.email.sms |