首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏明丰随笔

    浅谈消息队列 2

    目前使用较多的消息队列有 ActiveMQ, RabbitMQ, Kafka, RocketMQ, 我们后面会一一对比这些消息队列2. JMS 支持TextMessage、MapMessage 等复杂的消息类型;而 AMQP 仅支持 byte[] 消息类型(复杂的类型可序列化后发送)。 3. 由于Exchange 提供的路由算法,AMQP可以提供多样化的路由方式来传递消息消息队列,而 JMS 仅支持 队列 和 主题/订阅 方式两种。 常见的消息队列对比 ? 总结: 1. 2. RabbitMQ 在吞吐量方面虽然稍逊于 Kafka 和 RocketMQ ,但是由于它基于 erlang 开发,所以并发能力很强,性能极其好,延时很低,达到微秒级。 如果业务场景对并发量要求不是太高(十万级、百万级),那这四种消息队列中,RabbitMQ 一定是你的首选。

    62940发布于 2019-08-09
  • 来自专栏曾令武的专栏

    消息队列及常见消息队列介绍

    二、消息队列使用场景 消息队列在实际应用中包括如下四个场景: 应用耦合:多应用间通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败; 异步处理:多应用对消息队列中同一消息进行处理,应用间并发处理消息2)并行处理:新注册信息写入后,由发短信和发邮件并行处理; [1506329879062_698_1506329881428.png] 在这种方式下,发短信和发邮件 需处理完成后再返回给客户端。 2倍,相比并行提高了一倍; 2.2 应用耦合 具体场景:用户使用QQ相册上传一张图片,人脸识别系统会对该图片进行人脸识别,一般的做法是,服务器接收到图片后,图片上传系统立即调用人脸识别系统,调用完成后再返回成功 而加入消息队列后,系统可以从消息队列中取数据,相当于消息队列做了一次缓冲。 是由Apache出品,ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。

    53.2K2714发布于 2017-09-29
  • 来自专栏决胜机器学习

    消息队列(一) MySQL实现消息队列

    消息队列(一)MySQL实现消息队列 (原创内容,转载请注明来源,谢谢) 一、概述 消息队列(MessageQueue,通常简称MQ)是一种进程间通信或同一进程的不同线程间的通信方式,是分布式应用间交换信息的一种技术 通过消息队列,应用程序可独立地执行,它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息消息队列有多种实现方式,可以用关系型数据库(如Mysql)、Nosql(如redis)、现有框架(如rabbitMQ)等。 Mysql处理消息队列的场景:主要是在数据处理量大、耗时久、处理流程繁杂、处理内容多、需要持久化(入库)、业务处理要求相对不实时的场景,如发邮件、发短信、订单后续处理、操作数据记录日志等。 因此,此场景就非常适合于用Mysql解决此消息队列

    16.6K41发布于 2018-03-07
  • 来自专栏云服务器购买

    消息队列-腾讯云消息队列 CKafka

    腾讯云消息队列 CKafka,分布式、高吞吐量、高可扩展性的消息服务,100%兼容开源 Apache Kafka 0.9 0.10 腾讯云消息队列 CKafka点击查看详情 消息队列 CKafka 简介 消息队列 CKafka(Cloud Kafka)是一个分布式、高吞吐量、高可扩展性的消息系统,100%兼容开源 Kafka API(0.9、0.10版本)。 腾讯云消息队列 CKafka 的特性 兼容开源 100% 兼容 Apache Kafka 0.9 0.10版本,迁移上云0成本。 高可靠 消息队列 CKafka 集群性能强劲,生产性超越开源方案;此外,消息队列 CKafka 分布式的部署,集群稳定性也有很好的保障。 应用场景 日志分析系统 消息队列 CKafka 结合大数据套件 EMR,构建完整的日志分析系统。

    7.7K60发布于 2019-08-06
  • 来自专栏java思维导图

    消息队列探秘 – RabbitMQ 消息队列介绍

    Broker: 简单来说就是消息队列服务器实体。 Exchange: 消息交换机,它指定消息按什么规则,路由到哪个队列。 Queue: 消息队列载体,每个消息都会被投入到一个或多个队列。 Queue Queue(队列)是RabbitMQ的内部对象,用于存储消息,用下图表示。 queue ? 上图中,生产者(P)发送到Exchange(X)的所有消息都会路由到图中的两个Queue,并最终被两个消费者(C1与C2)消费。 (amqp.gen-Agl…);如果我们以routingKey=”info”或routingKey=”warning”来发送消息,则消息只会路由到Queue2。 =”lazy.brown.fox”的消息会路由到Q2,routingKey=”lazy.pink.rabbit”的消息会路由到Q2(只会投递给Q2一次,虽然这个routingKey与Q2的两个bindingKey

    4.8K20发布于 2019-11-05
  • 来自专栏互联网技术栈

    消息队列探秘-RabbitMQ消息队列介绍

    ---- Broker: 简单来说就是消息队列服务器实体。 Exchange: 消息交换机,它指定消息按什么规则,路由到哪个队列。 Queue: 消息队列载体,每个消息都会被投入到一个或多个队列。 Queue Queue(队列)是RabbitMQ的内部对象,用于存储消息,用下图表示。 queue ? image.png 上图中,生产者(P)发送到Exchange(X)的所有消息都会路由到图中的两个Queue,并最终被两个消费者(C1与C2)消费。 名称)和Queue2(amqp.gen-Agl…);如果我们以routingKey=”info”或routingKey=”warning”来发送消息,则消息只会路由到Queue2。 Q1,routingKey=”lazy.brown.fox”的消息会路由到Q2,routingKey=”lazy.pink.rabbit”的消息会路由到Q2(只会投递给Q2一次,虽然这个routingKey

    4.3K30发布于 2018-12-12
  • 消息队列

    消息队列中间件、分布式面向对象中间件和事务处理中间件等。 消息队列服务是一种松耦合的分布式应用集成形式。 消息队列分为用户创建队列和系统队列,用户队列分为: 1)“公共队列”在整个可传送消息的“消息队列”网络中复制并传输,并且有可能由网络连接的所有站点访问。 2)“专用队列”不在整个网络中发布。 专用队列只能由知道队列的完整路径名或标签的应用程序访问。 3)“管理队列”包含确认在给定“消息队列”网络中发送的消息回执的消息。制定希望MessageQueue组件使用的管理队列。 系统队列分为: 1)“日记队列”可选的存储发送消息的副本和从队列中溢出的消息副本。 2)“死信队列”存储无法传送或已过期的消息的副本。 MB消息路由和数据转换。 消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。

    41110编辑于 2025-08-29
  • 消息队列

    什么是消息队列消息队列是一种异步通信(Asynchronous Communication)的服务或组件。 它充当了消息的中介:发送方(生产者,Producer)将消息发送到队列中,接收方(消费者,Consumer)从队列中获取并处理消息。 核心特点是解耦:生产者和消费者不需要知道彼此的存在,它们只与消息队列交互。消息队列是解决高并发问题的关键技术之一。2.解决了什么问题? 消息队列主要解决了分布式系统中的三大核心问题:解耦(Decoupling):问题:系统间存在强依赖关系。解决:将消息的发送和接收分离开。 2.Broker 真正的 “消息存储 & 转发节点”:存储生产者发送的消息,给消费者提供消息读取;管理 Topic(消息主题)、Queue(消息队列)等元数据。

    48810编辑于 2025-11-11
  • 来自专栏晨曦破晓の家

    消息队列

    啥是消息队列 一般来说,消息队列是一种异步的服务间通信方式,是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。 通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。 消息队列有哪些 Kafka RocketMQ RabbitMQ pulsar activeMQ verneMQ 一个大型的分布式系统,通常都会异步化,走消息总线。 消息队列作为最主要的基础组件,在整个体系架构中,有着及其重要的作用。异步通常意味着编程模型的改变,时效性会降低。 kafka是目前最常用的消息队列,尤其是在大数据方面,有着极高的吞吐量。 而rocketmq和rabbitmq,都是电信级别的消息队列,在业务上用的比较多。相比较而言,ActiveMQ使用的最少,属于较老一代的消息框架。

    4.7K30发布于 2020-09-11
  • 消息队列

    消息队列 前言: 说实话,最近还是比较忙的,手上素材倒是一大把,但是大多只是初步整理了。但是博客这种东西还是要写的,果然后面还是要放低一下排版要求(扩展性的一些东西也少提一些)。 简介: 消息队列这个东西,其实网上的资料还是很多的。我就简单说一些自己的认识与源代码哈。 演变: 我是很喜欢了解技术演进的,因为演进的过程展现了前辈们的智慧。 最早的程序串行执行就不说了。 当然了,在本篇中,只简单谈一下异步通信的主流实现-消息队列。 选择: 选择方面,我就不多说了,目前只用过RabbitMq,RocketMq,Kafka。 网上有关消息队列选择的文章很多,很细致,我就不赘述了。 代码实现: 这里贴出来的都是实际生产代码(如果内部版本也算的话,嘿嘿),所以如果有一些不是很熟悉的类,请查看import,是否是项目自身的类。 virtual-host: "/" connection-timeout: 15000 小结: 这里不得不赞一下Spring,它通过提供RabbitMq地封装API-ampq,极大地简化了消息队列的代码

    26210编辑于 2025-08-26
  • 消息队列

    二、使用场景异步处理发送者将消息发送给消息队列之后,不需要同步等待消息接收者处理完毕,而是立即返回进行其它操作。消息接收者从消息队列中订阅消息之后异步处理。 例如在注册流程中通常需要发送验证邮件来确保注册用户身份的合法性,可以使用消息队列使发送验证邮件的操作异步处理,用户在填写完注册信息之后就可以完成注册,而将发送验证邮件这一消息发送到消息队列中。 可以将请求发送到消息队列中,服务器按照其处理能力从消息队列中订阅消息进行处理。 通过使用消息队列,一个模块只需要向消息队列中发送消息,其它模块可以选择性地从消息队列中订阅消息从而完成调用。三、可靠性发送端的可靠性发送端完成操作后一定能将消息成功发送到消息队列中。 事务提交成功后,将消息表中的消息转移到消息队列中,若转移消息成功则删除消息表中的数据,否则继续重传。接收端的可靠性接收端能够从消息队列成功消费一次消息

    1.2K30编辑于 2024-05-15
  • 来自专栏全栈程序员必看

    消息队列

    消息队列 一、消息模型 点对点 消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。 发布/订阅 消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。 二、使用场景 异步处理 发送者将消息发送给消息队列之后,不需要同步等待消息接收者处理完毕,而是立即返回进行其它操作。消息接收者从消息队列中订阅消息之后异步处理。 可以将请求发送到消息队列中,服务器按照其处理能力从消息队列中订阅消息进行处理。 通过使用消息队列,一个模块只需要向消息队列中发送消息,其它模块可以选择性地从消息队列中订阅消息从而完成调用。 三、可靠性 发送端的可靠性 发送端完成操作后一定能将消息成功发送到消息队列中。 事务提交成功后,将消息表中的消息转移到消息队列中,若转移消息成功则删除消息表中的数据,否则继续重传。 接收端的可靠性 接收端能够从消息队列成功消费一次消息

    4.2K20发布于 2021-04-07
  • 来自专栏Owen's World

    消息队列

    为什么使用消息队列 其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么? 先说一下消息队列常见的使用场景吧,其实场景有很多,但是比较核心的有 3 个:解耦、异步、削峰。 解耦 看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。 如果使用 MQ,每秒 5k 个请求写入 MQ,A 系统每秒钟最多处理 2k 个请求,因为 MySQL 每秒钟最多处理 2k 个。 所以说,只要高峰期一过,A 系统就会快速将积压的消息给解决掉。 消息队列有什么优缺点 优点上面已经说了,就是在特殊场景下有其对应的好处,解耦、异步、削峰。 如何保证消息队列的高可用,可以点击这里查看。 系统复杂度提高 硬生生加个 MQ 进来,你怎么保证消息没有重复消费?怎么处理消息丢失的情况?怎么保证消息传递的顺序性?

    3.1K40编辑于 2021-12-08
  • 来自专栏技术换美食换不换

    消息队列

    实时性要求不高,比较耗时的任务,可以考虑消息队列,如激活邮件,图像处理。 应用场景 应用耦合:多应用对于同一消息处理 异步处理:应用建并发处理消息 流量削锋 消息驱动系统:log 消息通讯:订阅同一主题,实现点对点通信 成熟MQ特点 RabbitMQ: 不支持消息批量处理,多 client无序,不支持事务 Kafka:只支持pull,不支持push,不支持事务 RockerMQ:最高单机吞吐量,但ali只有java客户端 ZeroMQ:“史上最快消息队列” 功能队列 优先级队列 延迟队列:30分钟未付款 死信队列:回退队列,充实队列

    3.6K20发布于 2018-08-28
  • 来自专栏springBoot3.0

    消息队列

    关于消息队列 ???? 文章简介:Kafka ???? 创作目的:消息队列 ☀️ 今日天气:天气很好 ???? 每日一言:“所行皆坦途 所求皆如愿。” ---- kafka常用于构建TB级别的异步消息系统 首先谈到对于框架的含义 : Java 框架由一系列可重用的预编写代码组成,它们起着模板的作用,开发人员可以根据需要通过填充自定义代码来创建应用。 在我们不使用Kafka的情况下,我们也能通过Java自带的API:BlockingQueue解决阻塞队列、实现消息系统或解决类似的问题、 ! Thread-2消费:7 Thread-1消费:6 Thread-2消费:5 Thread-3消费:4 Thread-1消费:3 Thread-2消费:2 Thread-3消费:1 Thread-1消费 ArrayBlockingQueue基于数组实现的阻塞队列,创建队列时需指定容量大小,是有界队列

    3.8K20编辑于 2023-03-06
  • 来自专栏芋道源码1024

    消息队列 MQ 专栏】消息队列之 ActiveMQ

    消息传送模型 点对点模型(Point to Point)使用队列(Queue)作为消息通信载体,满足生产者与消费者模式,一条消息只能被一个消费者使用,未被消费的消息队列中保留直到被消费或超时。 Queue,队列,点对点模式下特定生产者向特定队列发送消息,消费者订阅特定队列接收消息并进行业务逻辑处理。 S2,但这只是单方向的通信,发送到 S2 上的的消息还不能发送到 S1 上。 而异步接收消息时则需要提供 MessageListener 的实现类,所以定义了 queueListener 作为队列模式下异步接收消息的监听器,topic1Listener 和 topic2Listener 接收到文本消息 队列监听器监听到了一条消息,两个主题监听器分别监听到了两条消息

    7.7K10发布于 2018-07-31
  • 来自专栏JavaEdge

    【大厂消息队列】面试解析(2)-MQ选型

    看完标准,于是市面上主要就如下可供选择: 2 RabbitMQ 2.1 优点 Erlang语言编写,最早是为电信行业系统可靠通信设计,是支持AMQP协议的消息队列之一。 相当轻量级的消息队列,非常容易部署和使用。号称世上使用最广泛的开源消息队列。 支持的客户端语言 所有消息队列中最多的。 2.2 缺点 消息堆积的支持不好 设计理念:消息队列是一个管道,大量的消息积压是一种不正常的情况,应当尽量避免。 其它MQ ActiveMQ 最老牌的开源消息队列,十年前唯一可供选择的开源消息队列,目前已进入老年期,社区不活跃。 ZeroMQ 严格来说ZeroMQ并不能称之为一个消息队列,而是一个基于消息队列的多线程网络库,如果你的需求是将消息队列的功能集成到你的系统进程中,可以考虑使用ZeroMQ。

    91630编辑于 2022-11-30
  • 来自专栏芋道源码1024

    消息队列 MQ 专栏】消息队列之 Kafka

    即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条消息的传输。 2. 消息持久化 将消息持久化到磁盘,因此可用于批量消费,例如 ETL 以及实时应用程序。 Broker Kafka 集群中的一台或多台服务器统称为 Broker 2. Topic 每条发布到 Kafka 的消息都有一个类别,这个类别被称为 Topic 。 Partition Topic 物理上的分组,一个 Topic 可以分为多个 Partition ,每个 Partition 是一个有序的队列。 #默认消息的最大持久化时间,24小时 message.max.byte=5242880 #消息保存的最大值5M default.replication.factor=2 #kafka 保存消息的副本数 消费消息 2. 内存映射文件 即便是顺序写入硬盘,硬盘的访问速度还是不可能追上内存。所以 Kafka 的数据并不是实时的写入硬盘,它充分利用了现代操作系统分页存储来利用内存提高I/O效率。

    4.8K00发布于 2018-07-31
  • 来自专栏芋道源码1024

    消息队列 MQ 专栏】消息队列之 RocketMQ

    它还存储与消息相关的元数据,包括用户组、消费进度偏移量、队列信息等。 消息队列 消息队列(Message Queue),主题被划分为一个或多个子主题,即消息队列。 一个 Topic 下可以设置多个消息队列,发送消息时执行该消息的 Topic ,RocketMQ 会轮询该 Topic 下的所有队列消息发出去。下图 Broker 内部消息情况: ? 顺序消费表示消息消费的顺序同生产者为每个消息队列发送的顺序一致,所以如果正在处理全局顺序是强制性的场景,需要确保使用的主题只有一个消息队列。 img消费者2

    7.6K00发布于 2018-07-31
  • 来自专栏乐行僧的博客

    进程通信(二)消息队列(System V 消息队列

    2.进程通信》 key值的指定: (1)指定为IPC_PRIVATE,每次调用msgget都会创建一个新的消息队列,这样的开销比较大,一般情况下, 只需要一个消息队列即可,因此此方法不建议使用。 (2)指定一个(key_t)value,这个value只要未使用即可,可以通过ipcs -q命令查看已有消息队列的key值, 以避免重复使用。 (3)使用ftok生成key。 msgsnd函数 2.int msgsnd(int msqid, const void *ptr, size_t length, int flag); 参数msqid是由msgget返回的消息队列的唯一标识符 (1)0:阻塞接受消息2)IPC_NOWAIT:非阻塞接受消息,没有消息时,不阻塞。 (2)IPC_SET,给所指定的消息队列设置其msqid_ds结构体的以下4个成员:msg_perm.uid, msg_perm.gid,msg_perm.mode和msg_gbytes。

    3.3K20编辑于 2022-02-24
领券