当前位置:首页 > 科技  > 软件

消息队列中间件详解,你学会了吗?

来源: 责编: 时间:2024-07-11 17:31:23 808观看
导读消息队列中间件消息队列就是Message Queue,本质就是一个保存消息的队列。如下图所示:图片消息队列通常由一个中间件组件提供,它作为消息的中转站,负责接收、存储和转发消息。发送者将消息发送到消息队列中,接收者则从队列

消息队列中间件

消息队列就是Message Queue,本质就是一个保存消息的队列。lqX28资讯网——每日最新资讯28at.com

如下图所示:lqX28资讯网——每日最新资讯28at.com

图片图片lqX28资讯网——每日最新资讯28at.com

消息队列通常由一个中间件组件提供,它作为消息的中转站,负责接收、存储和转发消息。发送者将消息发送到消息队列中,接收者则从队列中获取消息进行处理。lqX28资讯网——每日最新资讯28at.com

消息中间件应用场景

消息队列的应用场景,主要包含:异步、解耦、削峰等,如下图所示:lqX28资讯网——每日最新资讯28at.com

图片图片lqX28资讯网——每日最新资讯28at.com

1.异步通信

发送方和接收方不需要直接进行实时的通信,而是通过消息队列中间件进行异步的消息传递lqX28资讯网——每日最新资讯28at.com

2.解耦和解偶

消息队列可以将发送方和接收方解耦,使得它们可以独立地进行开发、部署和维护lqX28资讯网——每日最新资讯28at.com

图片图片lqX28资讯网——每日最新资讯28at.com

主要会包含:生产者、Broker、消费者...等。lqX28资讯网——每日最新资讯28at.com

1.生产者

生产者,主要负责发送消息,生产者将消息发送到消息队列。lqX28资讯网——每日最新资讯28at.com

生产者根据业务逻辑生成消息,这些消息包含各种数据,例如:用户请求、系统事件、日志记录...等。lqX28资讯网——每日最新资讯28at.com

消费的类型:消息可以是文本、JSON、XML、或其他格式的......数据。lqX28资讯网——每日最新资讯28at.com

2.消息存储(Broker)

Broker:主要负责接收、存储和转发消息,通常具有持久化机制,确保消息不丢失。lqX28资讯网——每日最新资讯28at.com

Broker还将消息分发给合适的消费者,可以通过轮询、负载均衡...等方式进行调度。lqX28资讯网——每日最新资讯28at.com

以及,Broker需要等待消费者确认消息已被成功处理,然后才会将该消息从队列中移除,确保消息不被丢失。lqX28资讯网——每日最新资讯28at.com

3.消费者接收消息

消费者是消息的接收者和处理者,它从消息队列中读取消息,并执行相应的业务逻辑。lqX28资讯网——每日最新资讯28at.com

消费者从Broker中读取消息,可以是主动拉取(Pull)、或被动推送(Push)模式。lqX28资讯网——每日最新资讯28at.com

处理完成后,消费者需要向Broker发送确认信息,通知Broker该消息已被成功处理。lqX28资讯网——每日最新资讯28at.com

如果没有确认,消息可以重新投递,确保处理的可靠性。lqX28资讯网——每日最新资讯28at.com

消息队列类型

消息队列主要包含两种:一个是点对点,一个是发布订阅模型。lqX28资讯网——每日最新资讯28at.com

1.点对点

图片图片lqX28资讯网——每日最新资讯28at.com

点对点的特点:每个消息只有一个消费者(Consumer),即一旦被消费,消息就不再在消息队列中。lqX28资讯网——每日最新资讯28at.com

2.发布订阅

发布订阅模型包含三个角色:主题(Topic)、发布者(Publisher)、订阅者(Subscriber)。lqX28资讯网——每日最新资讯28at.com

如下图所示:lqX28资讯网——每日最新资讯28at.com

图片图片lqX28资讯网——每日最新资讯28at.com

消息协议

消息协议是消息队列中间件的重要组成部分,决定了消息的格式、传输方式、和通信规则。lqX28资讯网——每日最新资讯28at.com

1.JMS

Java Message Service(JMS)是Java平台上用于消息通信的标准API,提供了一种通用的方式来创建、发送、接收和读取消息。lqX28资讯网——每日最新资讯28at.com

比如:老牌的ActiveMQ,就是典型的JMS实现。lqX28资讯网——每日最新资讯28at.com

2.AMQP

AMQP,全程是“Advanced Message Queuing Protocol”,是一种开放标准的应用层协议。lqX28资讯网——每日最新资讯28at.com

特点是:lqX28资讯网——每日最新资讯28at.com

  • AMQP协议设计为与平台无关,支持多种编程语言;
  • 通过交换机(Exchange),实现复杂的消息路由机制,包括:直接交换(Direct)、主题交换(Topic)...等。
  • 支持消息确认、持久化、事务、死信队列...等功能,确保消息的可靠传递和处理。

rabbitmq,就是典型的AMQP的实现。lqX28资讯网——每日最新资讯28at.com

3.MQTT

Message Queuing Telemetry Transport(MQTT),是一种轻量级的发布/订阅消息协议,设计用于低带宽、高延迟、或不可靠的网络环境。lqX28资讯网——每日最新资讯28at.com

消息队列有哪些

常见的消息队列有:ActiveMQ、RocketMQ、Kafka、Pulsar、RabbitMQ等等。lqX28资讯网——每日最新资讯28at.com

如下图所示:lqX28资讯网——每日最新资讯28at.com

图片图片lqX28资讯网——每日最新资讯28at.com

  1. RabbitMQ:RabbitMQ是一个开源的消息队列系统,它实现了AMQP(Advanced Message Queuing Protocol)协议,并提供了丰富的功能,如消息持久化、消息确认、灵活的路由和绑定等。
  2. Apache Kafka:Apache Kafka是一个分布式的流式平台,它可以处理大规模的实时数据流。Kafka基于发布-订阅模型,具有高吞吐量和持久性,适用于处理大量实时数据的场景。
  3. ActiveMQ:ActiveMQ是Apache基金会的一个开源消息中间件,支持JMS(Java Message Service)规范。它提供了多种通信模式,如点对点(P2P)和发布-订阅(Pub/Sub),并具有可靠性、可扩展性和高可用性。
  4. Redis:Redis是一个内存数据库,但也可以用作消息队列。Redis提供了List、Pub/Sub等数据结构和命令,可以实现简单的消息队列功能。
  5. Apache Pulsar:Apache Pulsar是一个开源的分布式消息和流处理平台,具有高性能、可扩展性和持久化特性。Pulsar支持多租户、多数据中心部署和动态扩展,适用于大规模和复杂的消息队列和流处理场景。

选型比较lqX28资讯网——每日最新资讯28at.com

ActiveMQlqX28资讯网——每日最新资讯28at.com

JMS,多协议支持lqX28资讯网——每日最新资讯28at.com

成熟稳定,功能丰富,多语言支持lqX28资讯网——每日最新资讯28at.com

性能有限,管理复杂lqX28资讯网——每日最新资讯28at.com

中小规模企业应用,需要JMS功能支持的场景lqX28资讯网——每日最新资讯28at.com

RocketMQlqX28资讯网——每日最新资讯28at.com

高性能,强事务消息,分布式架构lqX28资讯网——每日最新资讯28at.com

高吞吐量低延迟,分布式,强一致性lqX28资讯网——每日最新资讯28at.com

社区支持少,运维复杂lqX28资讯网——每日最新资讯28at.com

互联网和金融系统,高吞吐量和严格一致性场景lqX28资讯网——每日最新资讯28at.com

KafkalqX28资讯网——每日最新资讯28at.com

高吞吐量,日志式存储,分区和复制lqX28资讯网——每日最新资讯28at.com

高性能,可扩展,生态系统丰富lqX28资讯网——每日最新资讯28at.com

延迟较高,不支持事务消息lqX28资讯网——每日最新资讯28at.com

大数据处理,实时流处理,需要高吞吐和扩展性场景lqX28资讯网——每日最新资讯28at.com

PulsarlqX28资讯网——每日最新资讯28at.com

多租户,分层架构,原生流处理lqX28资讯网——每日最新资讯28at.com

高性能,持久化存储,灵活扩展lqX28资讯网——每日最新资讯28at.com

学习曲线陡,社区和生态系统较小lqX28资讯网——每日最新资讯28at.com

云环境和企业系统,多租户和高性能消息传递场lqX28资讯网——每日最新资讯28at.com

RabbitMQlqX28资讯网——每日最新资讯28at.com

基于AMQP,灵活路由,丰富插件lqX28资讯网——每日最新资讯28at.com

易于使用,功能丰富,多语言支持lqX28资讯网——每日最新资讯28at.com

性能有限,集群管理复杂lqX28资讯网——每日最新资讯28at.com

中小规模企业应用,复杂路由和消息确认场景lqX28资讯网——每日最新资讯28at.com

总的来说

互联网和金融系统,高吞吐量和严格一致性场景,可以选择:RocketMQ;lqX28资讯网——每日最新资讯28at.com

中小规模企业应用,复杂路由、和消息确认场景,可以选择:RabbitMQ;lqX28资讯网——每日最新资讯28at.com

大数据处理,实时流处理,需要高吞吐、和扩展性场景,可以选择Kafka。lqX28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-100465-0.html消息队列中间件详解,你学会了吗?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 基于Rspack实现大仓应用构建提效实践

下一篇: Springboot如何通过配置来决定使用的Web容器

标签:
  • 热门焦点
  • 鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    华为全新的HarmonyOS 4.0操作系统将于今天下午正式登场,官方在发布会之前也已经正式给出了可升级的机型产品,这意味着这些机型会率先支持升级享用。这次的HarmonyOS 4.0支持
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • 分布式系统中的CAP理论,面试必问,你理解了嘛?

    对于刚刚接触分布式系统的小伙伴们来说,一提起分布式系统,就感觉高大上,深不可测。而且看了很多书和视频还是一脸懵逼。这篇文章主要使用大白话的方式,带你理解一下分布式系统
  • 不容错过的MSBuild技巧,必备用法详解和实践指南

    一、MSBuild简介MSBuild是一种基于XML的构建引擎,用于在.NET Framework和.NET Core应用程序中自动化构建过程。它是Visual Studio的构建引擎,可在命令行或其他构建工具中使用
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 腾讯盖楼,字节拆墙

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之“想重温暴刷深渊、30+技能搭配暴搓到爽的游戏体验吗?一起上晶核,即刻暴打!”曾凭借直播腾讯旗下代理格斗游戏《DNF》一
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 半导体需求下滑 三星电子DS业务部门今年营业亏损预计超10万亿韩元

    7月17日消息,据外媒报道,去年下半年开始的半导体需求下滑,影响到了三星电子、SK海力士、英特尔等诸多厂商,营收明显下滑,部分厂商甚至出现了亏损。作为
Top