程序员的公众号:源1024,获取更多资料,无加密无套路!
最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等
获取方式: 关注公众号并回复 电子书 领取,更多内容持续奉上
RocketMQ是阿里开源的一款非常优秀的消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等,天然的支持集群模型、负载均衡、水平扩展能力,亿级别的消息堆积能力。
RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。
使用场景:
-
异步通信:RocketMQ 可以在不同的应用程序之间进行异步通信,从而提高系统的可伸缩性和响应速度,减少多个模块之间的依赖性。
-
延时消息:比如处理订单超时关闭功能,30分钟还没支付的订单就自动关闭。
-
数据分发:A系统将消息发送到RocketMQ队列,其他系统如果有需要就去消费。
-
应用解耦:通过RocketMQ作为中介,生产方与消费方通过消息进行交互,减少模块之间的耦合性。
-
削峰填谷:RocketMQ 可以用于平滑处理流量峰值,将高并发请求缓冲并逐渐处理,以防止系统过载。例如,双11活动,秒杀活动、抢红包等,通过RocketMQ的削峰填谷能力,平稳流量峰值,避免系统压力过大。
-
顺序消息:适用于需要保证多条消息顺序处理的场景,例如证券交易、订单创建、支付、退款等流程,消息有序只限定在同一个queue中。
-
日志收集:统一收集业务日志,消息队列作为日志数据的中转站。并且,RocketMQ 的流式计算框架非常适合与大数据框架集成,如 Apache Hadoop 和 Flink 等,用于构建实时数据流处理。
系列文章索引
MyBatis的插件能在哪些地方进行拦截?
了解MyBatis的缓存机制吗
面试官:谈谈对volatile的理解
Spring中用到了哪些设计模式
面试官:说一下SQL的执行过程
线程池的工作原理