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

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

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

消息队列中间件

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

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

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

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

消息中间件应用场景

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

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

1.异步通信

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

2.解耦和解偶

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

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

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

1.生产者

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

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

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

2.消息存储(Broker)

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

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

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

3.消费者接收消息

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

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

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

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

消息队列类型

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

1.点对点

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

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

2.发布订阅

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

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

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

消息协议

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

1.JMS

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

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

2.AMQP

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

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

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

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

3.MQTT

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

消息队列有哪些

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

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

图片图片kE528资讯网——每日最新资讯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支持多租户、多数据中心部署和动态扩展,适用于大规模和复杂的消息队列和流处理场景。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

总的来说

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • 2023 年的 Node.js 生态系统

    2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • Automa-通过连接块来自动化你的浏览器

    Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • K8S | Service服务发现

    K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • 三言两语说透设计模式的艺术-单例模式

    三言两语说透设计模式的艺术-单例模式

    写在前面单例模式是一种常用的软件设计模式,它所创建的对象只有一个实例,且该实例易于被外界访问。单例对象由于只有一个实例,所以它可以方便地被系统中的其他对象共享,从而减少
  • 雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    来源 | 烈酒商业观察编 | 肖海林今年以来,威士忌市场开始出现了降温迹象,越来越多不断暴涨的网红威士忌也开始悄然回归市场理性。近日,LVMH集团旗下苏格兰威士忌品牌雅柏(Ardbeg
  • 慕岩炮轰抖音,百合网今何在?

    慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz“难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?”这一番话,出自百合网联合创
  • 质感不错!OPPO K11渲染图曝光:旗舰IMX890传感器首次下放

    质感不错!OPPO K11渲染图曝光:旗舰IMX890传感器首次下放

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
  • Windows 11发布,微软一改往常对老机型开放的态度

    Windows 11发布,微软一改往常对老机型开放的态度

    距离 Windows 11 发布已经过去一周,在过去一周里,很多数码爱好者围绕其对 Android 应用的支持、对老机型的升级问题展开了激烈讨论。与以往不同的是,在这次大
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
Top