[高级消息队列] 消息队列基本知识笔记

1.消息队列的应用场景

消息队列是生产者-消费者模型。

解耦,避免各种系统之间进行复杂的调用,所有系统只需要向消息队列推入消息和获取消息即可。(试想若n个微服务间互相调用,需要(n*(n-1))/2种不同连接,每一种都需要进行一次编码……)

异步,将非必要业务逻辑异步允许,加快响应速度。例如避免微服务间顺序调用以及达到非阻塞式调用的目的。

削峰,缓存请求数量,避免高峰期时对服务或数据库产生影响。(漏桶算法和令牌桶算法)

2.四种常见高级消息队列组件对比

特性 ActiveMQ RabbitMQ RocketMQ Kafka
开发语言 Java Erlang Java Scala
单机吞吐量 万级 万级 十万级 十万级
时效性 ms级 us级 ms级 ms级以内
可用性及架构 高、主从架构 高、主从架构 极高、分布式架构 极高、分布式架构
功能特性 较成熟

并发性能强,

管理界面完善

扩展性强

为大数据领域准备,

无一些额外功能,如

消息查询和回溯

3.消息队列需要考虑的问题

1)高可用性,保证消息数量增加时系统的可用性,策略是按业务需要选择集群模式。

2)保证消息不被重复消费。

3)保证消息传输可靠性(即不丢失消息)。

4)保证消息顺序性,尤其是在分布式架构下保证获取到的消息顺序不变化。

posted @ 2021-10-26 16:15  Cheung-10  阅读(7)  评论(0)    收藏  举报