第9章 Spring Boot与异步消息

在实际工作中,消息队列作为高并发系统的核心组件之一,能够帮助业务系统解耦、提升开发效率和增强系统稳定性。主要具有以下优势:

  • 削峰填谷(主要解决瞬时写压力大于应用服务吞吐能力导致的消息丢失、系统奔溃等问题);
  • 系统解耦(解决不同重要程度、不同服务级别系统之间的依赖,避免出现系统“一死全死”的局面);
  • 提升性能(当存在一对多调用时,可以发一条消息给消息系统,让消息系统通知相关系统);
  • 蓄流压测(线上有些链路不好做压力测试,可以通过堆积一定量消息后再放开来进行压力测试)。

目前主流的MQ有ActiveMQ、RabbitMQ、RocketMQ和Kafka。

特性 ActiveMQ RabbitMQ RocketMQ kafka
开发语言 java erlang java scala
单机吞吐量 万级 万级 10万级 10万级
时效性 ms级 us级 ms级 ms级以内
可用性 高(主从架构) 高(主从架构) 非常高(分布式架构) 非常高(分布式架构)
功能特性 成熟的产品,在很多公司得到应用,有较多的文档,各种协议支持较好 基于erlang开发,所以并发能力很强,性能极好,延时很低,管理界面较丰富 由阿里巴巴设计,历经多次天猫双十一海量消息考验。现在是Apache顶级项目。MQ功能比较完备,扩展性佳 只支持主要的MQ功能,像一些消息查询,消息回溯等功能没有提供,毕竟是为大数据准备的,在大数据领域应用广

本章我们先介绍异步消息的相关概念,然后再依次介绍如何在Spring Boot中集成使用ActiveMQ、RocketMQ、RabbitMQ和Kafka这四种主流的消息中间件。

results matching ""

    No results matching ""