这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
一、什么是消息队列
消息队列是一种异步的服务间通信方式,适用于无服务器和微服务架构。消息在被处理和删除之前一直存储在队列上。每条消息仅可被一位用户处理一次。消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削峰等问题
消息队列是在消息的传输过程中保存消息的容器。在消息队列中,通常有生产者和消费者两个角色。生产者只负责发送数据到消息队列,谁从消息队列中取出数据处理,他不管。消费者只负责从消息队列中取出数据处理,他不管这是谁发送的数据。
二、常见的消息队列
- Kafka:分布式的、分区的、多副本的日志提交服务,在高吞吐场景下发挥较为出色。
- RocketMQ:低延迟、强一致、高性能、高可靠、万亿级容量和灵活的可扩展性,在一些
实时场景中运用较广。 - RabbitMQ:是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。支持多种客户端,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
- Pulsar:是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体、采用存算分离的架构设计。
- BMQ:和Pulsar架构类似,存算分离,初期定位是承接高吞吐的离线业务场景,逐步替换掉对应的Kafka集群。
存算分离:将存储资源和计算资源拆分为独立的模块进行建设,在资源利用率、存储资源高效共享、多场景灵活部署、网存算协同等方面具有显著优势。
参考链接
消息队列是什么_mq是什么_MQ消息队列服务-AWS云服务 (amazon.com)
超详细的RabbitMQ入门,看这篇就够了!-阿里云开发者社区 (aliyun.com)
[RabbitMQ (十六) 消息队列的应用场景 (转) - 热敷哥 - 博客园 (cnblogs.com)](