主要观点总结
本文梳理了消息队列(MQ)的8种使用场景,包括异步处理、解耦、流量削锋、延时任务、日志收集、分布式事务、远程调用和广播通知。
关键观点总结
关键观点1: 异步处理
MQ最常见的应用场景之一是异步处理,如用户注册场景中发送短信或邮件通知。
关键观点2: 解耦
在微服务架构中,MQ可以帮助解耦服务,避免直接调用导致的强耦合。
关键观点3: 流量削锋
在高并发情况下,MQ可以用于流量的削峰填谷,确保系统平稳运行。
关键观点4: 延时任务
MQ的延时队列功能可以用于实现延时任务,如自动取消订单。
关键观点5: 日志收集
消息队列常用于日志系统中,将应用生成的日志异步发送到日志处理系统进行统一存储和分析。
关键观点6: 分布式事务
MQ可用于实现分布式事务,如通过发送半事务消息来确保数据的一致性和系统的稳定性。
关键观点7: 远程调用
基于MQ的远程调用框架可以实现金融场景的适配性,提供消息查询功能等。
关键观点8: 广播通知
消息队列可以非常适合用于广播通知,如系统维护、事件驱动的消息通知等。
文章预览
前言 我们日常开发中,经常跟MQ(消息队列)打交道。 本文梳理了MQ的8种使用场景。 1. 异步处理 面试官在问我们MQ作用时,很多伙伴马上想到 异步处理、解耦、流量削锋 等等。 MQ 最常见的应用场景之一就是 异步处理 。 比如,在用户注册场景中,当用户信息保存成功后,系统需要发送一个短信、或者邮箱消息,通知用户注册成功。如果这个短信或者邮箱消息发送 比较耗时 ,则 可能拖垮注册接口 。又或者如果调用第三方短信、邮件发送接口失败,也会影响注册接口。一般我们不希望一个通知类的功能,去影响注册主流程,这时候,则可以使用 MQ来实现异步处理 。 简要代码如下 :先保存用户信息,然后发送注册成功的MQ消息 // 用户注册方法 public void registerUser(String username, String email, String phoneNumber) { // 保存用户信息(简化
………………………………