主流的消息队列中间件
消息队列\特点 | 优点 | 缺点 |
---|---|---|
ActiveMQ | 老牌的消息中间件,功能强大。 | 没法确认ActiveMQ可以支撑互联网公司的高并发、高负载以及高吞吐的复杂场景,在国内互联网公司落地较少,多用于异步调用和系统解耦。 |
RabbitMQ | 高并发,高吞吐,性能很高,后台管理系统很便捷,开源社区非常活跃。 | 基于erlang开发,较难进行二次开发。 |
RocketMQ | 阿里开源,基于java,高并发,高吞吐,支持分布式。 | 未知。 |
消息中间件的主要作用
系统解耦
将消息存放到消息中间件,避免大量的系统直接调用,可以由被调用方自行进行消费。调用方不用关心结果,代码解耦合。
异步调用
调用链路比较长的情况下,通过消息异步调用减少接口调用时长,防止超时或者等待时间过长。
流量削减
在短时间大流量的情况下,需要进行限流,作为后端集群的负载,生产者可以不断生成消息,但是后端集群只会定量消费。保护了后台系统的稳定性。