消息中间件的研究(二) RabbitMQ应用场景分析
分析一下六个场景下RabbitMQ的应用:
1.爬虫
2.智能家居云平台
3.电子商务系统
4.实时监控系统
5.海量日志的分布式处理
6. 智能交通管控平台中数据分析子系统
1.爬虫
在爬虫业务场景下,多个spider任务之间的进度不一样,合理利用了 Rabbit MQ 多队列、高时效性、高稳定性的特征对不同爬取迚度的任务进行有效管理
2.智能家居云平台
智能家居场景中
提出RabbitMQ在智能家居云平台分布式系统中可行的实现方案,构建了三种不同的通信交互模式。
RabbitMQ三种通信方式具体应用
耗时长的业务----“发后即忘”普通模式
web页面上CRUD、websocket长连接之间的请求响应--RPC模式
服务器日志等级的修改--发布订阅模式
研究分析RabbitMQ的三种集群模式,搭建RabbitMQ集群架构。
原有的分布式,集群架构设计系统间通信方式使得系统耦合严重,无法满足与平台不同模块之间越来越复杂的信息交互。RabbitMQ作为一种消息中间,发送者只需要将消息存入RabbitMQ服务器,而接收者只需要去除消息进行处理。实现系统之间解耦。
三种集群模式
默认集群模式
镜像集群模式
主备集群模式
3.电子商务系统
利用RabbitMQ消息队列来完成电商复杂业务逻辑的处理 --Web层与业务逻辑层使用MQ进行消息分发,业务逻辑层进行处理
4.实时监控系统
在实时监控系统中,....的场景
传输子系统有两个接口,一个向上层用户提供消息服务的接口,一个是与RabbitMQ服务器的接口。向上层用户服务的接口定义了与上层用户交换数据的格式标准。
数据通信子系统与RabbitMQ服务器之间的接口遵循AMQP协议。服务端和客户端都需要发布和订阅,都具有消息发布者和消息订阅者双重角色。由于存在不同的通信模式,
在设计时,根据服务端和客户端的通信模型选型合适的交换器类型。
当管理中心向远端站发出查询或控制指令时,可能会有一个或者多个远端站接收该指令进行动作,采用广播式交换器。
5. 基于rabbitmq的海量日志的分布式处理
解决海量日志的分析问题。web日志数据具有海量、多样、异构、动态变化等特点。
使用RabbitMQ搭建一个高可用集群模式,对于每个rabbitmq节点,根据日志种类建立相应的队列,并且根据日志种类的名建立exchange的key值
6. 智能交通管控平台中数据分析子系统
一种基于智能交通管理控制集成平台的数据分析子系统的解决方案,该数据分析子系统将集成平台中其他
子系统产生的数据加以整合、分析、计算和重构,形成新的数据结构,在宏观角度上展现当前交通的整体运行状况,
还可以在流量和拥堵路段数等几个不同的维度上展示当前交通的维度信息。
在消息传递采用RabbitMQ,在数据预处理模块,和数据接入的模块中间,担任数据中间传递介质。
总结:
RabbitMQ多应用在系统之间的数据传递,在多模块场景下,会出现模块处理速度不一或者模块数据交互逻辑复杂影响后期的研发等问题,RQ常来用来帮助系统解耦,使得模块之间数据交换能够简单化;在应对应对短时高访问流量场景,利用RQ信息传输的可靠特性,RQ可作为缓冲层;在应对信息数量大,且信息处理可延时,例如系统海量日志数据处理场景,可建立RQ的集群模式,对日志进行分类收集。