Spring Cloud Alibaba 异步通信 - RocketMQ 简介
2023-09-14 09:14:12 时间
概述
消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。主要具有以下优势:
- 削峰填谷: 主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题
- 系统解耦: 解决不同重要程度、不同能力级别系统之间依赖导致一死全死
- 提升性能: 当存在一对多调用时,可以发一条消息给消息系统,让消息系统通知相关系统
- 蓄流压测: 线上有些链路不好压测,可以通过堆积一定量消息再放开来压测
RocketMQ
Apache Alibaba RocketMQ 是一个消息中间件。消息中间件中有两个角色:消息生产者和消息消费者。RocketMQ 里同样有这两个概念,消息生产者负责创建消息并发送到 RocketMQ 服务器,RocketMQ 服务器会将消息持久化到磁盘,消息消费者从 RocketMQ 服务器拉取消息并提交给应用消费。
RocketMQ 特点
RocketMQ 是一款分布式、队列模型的消息中间件,具有以下特点:
- 支持严格的消息顺序
- 支持 Topic 与 Queue 两种模式
- 亿级消息堆积能力
- 比较友好的分布式特性
- 同时支持 Push 与 Pull 方式消费消息
- 历经多次天猫双十一海量消息考验
RocketMQ 优势
目前主流的 MQ 主要是 RocketMQ、kafka、RabbitMQ,其主要优势有:
- 支持事务型消息(消息发送和 DB 操作保持两方的最终一致性,RabbitMQ 和 Kafka 不支持)
- 支持结合 RocketMQ 的多个系统之间数据最终一致性(多方事务,二方事务是前提)
- 支持 18 个级别的延迟消息(RabbitMQ 和 Kafka 不支持)
- 支持指定次数和时间间隔的失败消息重发(Kafka 不支持,RabbitMQ 需要手动确认)
- 支持 Consumer 端 Tag 过滤,减少不必要的网络传输(RabbitMQ 和 Kafka 不支持)
- 支持重复消费(RabbitMQ 不支持,Kafka 支持)
消息队列对比参照表
相关文章
- spring注解有哪些_Spring 注解
- Spring Cloud实战|整合Gateway-网关还能这么整?
- shiro框架使用的注解_spring shiro
- spring整合s3实现文件上传下载
- 【SCT】Spring Cloud Starter Tencent Metadata Transfer
- 【SCT】Spring Cloud Starter Tencent Polaris Config
- spring cache使用redis
- [Spring Cloud]Stream组件介绍
- 《Spring核心技术》第7章:深度解析@DependsOn注解
- 基于 Spring Cloud Gateway 实现微服务架构的限流、熔断和重试
- Spring Cloud Sleuth与Prometheus集成-示例
- Spring Cloud Sleuth与Prometheus集成
- Spring Cloud Rest的环境搭建详解【服务提供者和服务消费者】
- Spring Cloud Stream与RabbitMQ的集成
- Spring Cloud Security监控示例-安全审计日志示例
- Spring Cloud Bus监听服务配置的变化并自动通知其他服务(二)
- Spring Cloud Task 核心组件-Task Explorer
- 聊聊Spring Cloud Alibaba的架构思想
- spring mvc处理http请求报错:java.lang.IllegalStateException: getInputStream() has already been called for this request详解编程语言
- Spring MVC的表单标签库详解