众所周知,RocketMQ 作为一款分布式、队列模型的消息中间件,具有以下特点:
- 严格保证的消息顺序
- 丰富的消息拉取模式
- 高效的订阅者水平扩展能力
- 实时的消息订阅机制
- 亿级消息堆积能力
在复杂的应用场景中,将 RocketMQ 作为技术解耦的消息中间件,可以简化服务部署,以下是 RocketMQ 在大数据的实践分享。
场景分析
在大数据中,应用 RocketMQ 的使用场景中经常会出现:异步请求,应用解耦和日志处理等场景情况。
- 异步请求的业务处理:
经常遇到如下两种情况,一种为串行方式的业务流程(如图1),另一种为并行方式的业务流程(如图2)。
**串行方式:**在[大数据解决方案]中,针对顺序化、流程化的业务场景经常使用串行方式,实现RocketMQ 的技术解耦。如在某卷烟厂的解决方案中,针对制烟流程,将各个车间的处理流程做为独立的业务体创建一个Topic,对业务体中的各个处理阶段创建对应的Tag,并按照制烟流程顺序进行数据推送、清洗、业务处理及监控等,如下图1。
图1
**并行方式:**因业务的独立性,处理流程可分开进行处理,相互之间没有业务交叉。这种情况下,我们可以考虑使用并行方式对业务流程进行技术解耦。在大数据的相关解决方案中,针对某汽车的数据监控及相关画