文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

消息队列的特点是什么

2023-06-04 07:43

关注

本篇内容主要讲解“消息队列的特点是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“消息队列的特点是什么”吧!

什么是消息队列?

消息队列的特点是什么

消息队列( Message Queue )是一种进程间通信或同一进程的不同线程间的通信方式。进程或者线程之间通过 消息 进行通信,消息发送后可以立即返回,由消息系统来确保信息的可靠传递,消息发布者(生产者)只管把消息发布到消息队里中而不用管谁来消费,消息使用者(消费者)只管从消息队列中获取消息以进一步处理而不用管理谁发布的消息,这样发布者和使用者都不用知道对方的存在。

消息( Message )是指在应用之间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以很复杂,如嵌入对象。

消息队列的特点

通过提供 消息传递 和 消息排队 模型,它可以在 分布式环境 下提供 应用解耦 、 弹性伸缩 、 冗余存储 、 流量削峰 、 异步通信 、 数据同步 等等功能,其作为 分布式系统架构 中的一个重要组件,有着举足轻重的地位。消息队列主要特点有:

消息队列应用场景

异步处理

同步处理是指从请求的发起一直到最终的处理完成期间,请求的调用方一直在同步阻塞等待调用的处理完成。

异步处理处理是指在请求发起的处理过程中,客户端的代码已经返回了,它可以继续进行自己的后续操作,而不需要等待调用处理完成。

对一些比较耗时且不需要即时(同步)返回操作结果的操作,可以把处理过程通过消息队列进行异步处理。这样做可以推迟耗时操作的处理,使耗时操作异步化,而不必阻塞客户端程序,客户端的程序在得到处理结果之前可以继续执行,从而提高客户端程序的处理性能。

异步处理的主要目的是 减少请求响应时间 ,实现非核心流程异步化,提高系统响应性能。

应用解耦

使用消息队列,可以有多个生产者发布消息,多个消费者消费消息,共同完成整个的业务处理逻辑,生产者只关心是否正确将消息写入消息队列,消费者只关心从消息队列中获取消息,然后进行处理逻辑,生产者和消费者之间不需要直接的交互调用,没有代码的依赖耦合。

耦合度越低程序代码越容易维护,也容易进行扩展。

流量削峰

一般在秒杀活动中广泛使用。

在秒杀活动中,一般由于瞬时访问量过大,服务器瞬间接收了大量的请求,流量暴增,这种情况下很有可能导致相关系统无法处理请求甚至崩溃。为了解决这个问题,一般会在应用的前端加入消息队列。

使用消息队列,即便是访问流量持续的增长,系统依然可以持续的接收请求。虽然生产者生成的消息比消费者消费的速度快,但是通过消息队列进行了缓冲,在短时间内,生产者和消费者之间处理能力不会互相影响,同样也可以保证系统的稳定性。

消息通讯

消息队列一般都内置了高效的通信机制,因此可以用于单纯的消息通讯,比如实现点对点消息队列或者聊天室。

广播

如果没有消息队列,每当一个新的业务方介入,那都需要联调一次接口。有了消息队列,只需要关系消息是否送达了队列,至于谁希望订阅,是下游的事情,无疑极大地减少了开发和联调的工作量。

日志处理

将消息队列用在日志处理中,解决了大量日志传输的问题(如Kafka)。

消息队列的传输模式

点对点模式(Point to Point)

点对点模式用于 消息生产者 和 消息消费者 之间 点到点 的通信。消息生产者将消息发送到由某个名字标识的特定队列( Queue )。在消息传递给消费者之前它被 存储 在这个队列中。 队列消息 可以放在 内存 中也可以 持久化 ,以保证在消息服务出现故障时仍然能够传递消息。

消息队列的特点是什么

点对点模式特点:

发布/订阅模式(Publish/Subscribe)

发布者/订阅者模型支持向一个特定的 消息主题 生产消息。 0 或多个 订阅者 可能对接收来自 特定消息主题 的消息感兴趣。

在这种模型下,发布者和订阅者彼此不知道对方。多个消费者可以获得消息,在 发布者 和 订阅者 之间存在 时间依赖性 。发布者需要建立一个 订阅 ( subscription ),以便能够消费者订阅。 订阅者 必须保持 持续的活动状态 并 接收消息 。

消息队列的特点是什么

发布/点阅模式特点:

集中消息中间件对比

目前在生产环境,使用较多的消息队列有 ActiveMQ 、 RabbitMQ 、 ZeroMQ 、 Kafka 、 MetaMQ 、 RocketMQ 等。

消息队列的特点是什么

到此,相信大家对“消息队列的特点是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯