事件驱动计算并不是什么新的想法,在数据库领域中就已经使用数据库触发器有很多年了。这个概念很简单:就是每当你添加、更改或删除数据时,就会触发一个事件来执行各种操作。这些类型的事件和触发器在其他领域的应用中也大量出现,例如自动扩展、自动修复、容量规划等等。事件驱动架构的核心是对系统上的各种事件做出反应并执行相应的动作。
作者 | 厉启鹏 本文以互联网的发展为主线,用叙事的方式向读者再现了消息系统从诞生至今的发展历史。从 1983 年开始,消息系统经历了不同历史时期的历练与打磨,它们的使用方式、功能特性、产品形态、应用场景都发生了非常大的变化。作者选取了五款不同时代的代表性作品,描述了这些产品诞生的历史背景,立足解决的核心问题,并尝试分析它们取得成功的关键因素。最后作者给出了在 Serverless 时代的三个断言,指出了当前消息系统在解决 Serverless 场景存在的核心痛点,展望了未来消息产品应该具备的关键能力,
最终用户客座文章作者:Ratnadeep Debnath,Zapier 网站可靠性工程师
导读 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案,支持多租户、低延时、读写分离、跨地域复制、快速扩容、灵活容错等特性。数平 MQ 团队对 Pulsar 做了深入调研以及大量的性能和稳定性方面优化,目前已经在腾讯云消息队列 TDMQ 落地上线。本文主要简单梳理了 Pulsar 支持的一些传统消息队列应用场景,以及 Pulsar 新特性对更多场景的支持。 作者介绍 张超 腾讯数据平台部 MQ 团队高级工程师 Apache TubeMQ(incubating) PMC
RabbitMQ下载链接: https://github.com/rabbitmq/rabbitmq-server/releases Erlang下载链接: https://github.com/rabbitmq/erlang-rpm/releases
上一篇我们用一个秒杀案例探讨了我们为什么需要消息队列。今天我们来回顾一下消息队列的发展历史。
消息中间件作为消息通信的基础软件,已在业界诸多 IT 系统中被广泛使用。近年来,随着移动云业务的持续高速发展,基于开源技术生态构建的消息中间件云产品体系越来越受到市场的青睐。移动云在消息中间件领域的技术演进与发展方向上一直坚持着自研和开源融合的发展路线,在做好自研的基础上积极拥抱开源生态。
2、异步:消息堆积能力;发送方接收方不需同时在线,发送方接收方不需同时扩容(削峰)。
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。 RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。 所有主要的编程语言均有与代理接口通讯的客户端库。
在Kubernetes(K8s)环境中部署有状态应用(Stateful Applications)涉及到一些特别的考虑和策略。有状态应用与无状态应用的主要区别在于它们需要维护数据状态,这使得它们在部署和管理上有特殊的需求。
消息队列,英文名:Message Queue,经常缩写为MQ。从字面上来理解,消息队列是一种用来存储消息的队列。可以简单理解消息队列就是将需要传输的数据存放在队列中。
今天我们来分享RabbitMQ消息队列。 其中,MQ(Message Queue)翻译过来就是消息队列的意思。RabbitMQ作为消息队列中的优秀平台且开源,被很多公司使用。RabbitMQ服务器是用Erlang语言编写的,基于AMQP,本篇给大家总结了33道RabbitMQ知识点或者说面试题,可以收藏一波了,持续更新中...
导语 本文从AMQP协议(Advanced Message Queuing Protocol,高级消息队列协议)、消息功能、消费模型、金融级用法及其他功能点对比等概念介绍对RabbitMQ做了科普, 希望对各位深入理解RabbitMQ有帮助。 AMQP协议概念 AMQP协议自身定义了很多概念,下面先对这些概念进行剖析,会更侧重从每个概念实体的作用域、职责范围、从属关系等维度进行介绍。 AMQP协议概念实体图 Connection 对应底层一个AMQP-Client到RabbitMQ-B
导语 1月6日,TDMQ RabbitMQ 版正式公测!TDMQ RabbitMQ 版是TDMQ系列产品中的一款子产品,是一款分布式高可用的消息队列服务,支持AMQP 0-9-1 协议,完全兼容开源 RabbitMQ 的各个组件与概念。欢迎大家扫描文末二维码使用体验! TDMQ RabbitMQ 版的背景 众所周知,RabbitMQ是一个历史比较悠久的消息队列中间件,它是使用Erlang语言开发的实现AMQP(Advanced Message Queue Protocol 高级消息队列协议)的
本文是 “2021 InfoQ 年度技术盘点与展望” 系列文章之一,由 InfoQ 编辑部制作呈现,重点聚焦中间件领域在 2021 年的重要进展、动态,希望能帮助你准确把握 2021 年中间件领域的核心发展脉络,在行业内始终保持足够的技术敏锐度。 “InfoQ 年度技术盘点与展望”是 InfoQ 全年最重要的内容选题之一,将涵盖架构、AI、大数据、大前端、云计算、数据库、中间件、操作系统、开源、编程语言十大领域,后续将聚合延展成专题、迷你书、直播周、合集页面,在 InfoQ 媒体矩阵陆续放出,欢迎大家持续关注。 同时在此特别感谢胡伟琪(白慕)、林清山(隆基)、许文强、翟佳、周子博(按姓名首字母排序)几位大佬对本文的贡献,他们的真知灼见,是本文能与大家见面的关键。
今天我们来分享RabbitMQ消息队列。 其中,MQ(Message Queue)翻译过来就是消息队列的意思。RabbitMQ作为消息队列中的优秀平台且开源,被很多公司使用。RabbitMQ服务器是用Erlang语言编写的,基于AMQP,本篇给大家总结了29道RabbitMQ知识点或者说面试题,可以收藏一波了,持续更新中…
今天我们来分享RabbitMQ消息队列。 其中,MQ(Message Queue)翻译过来就是消息队列的意思。RabbitMQ作为消息队列中的优秀平台且开源,被很多公司使用。RabbitMQ服务器是用Erlang语言编写的,基于AMQP,本篇给大家总结了29道RabbitMQ知识点或者说面试题,可以收藏一波了,持续更新中...
本书开始部分概要介绍了 Docker 和Kubernetes 的由来和发展,然后通过在 Kubernetes 中部署一个应用程序,一点点增加功能,逐步加深我们对于Kubernetes架构的理解和操作的实践。在本书的后面部分,也可以学习一些高阶的主题,比如监控、调试及伸缩。
消息队列(Message Queue)是一种使用高效可靠的数据传输机制来进行平台无关的数据通信的技术。消息队列拥有消息传递、消息生产、消息消费、优先级消息等功能,为我们的分布式系统提供了数据通信、功能解耦、弹性伸缩、数据冗余、限流削峰、异步消息等丰富能力,是分布式系统的一个重要组件。 当前开源的消息队列的组件种类繁多,在Github上搜索Message Queue,就有4K+的资源。如此众多的消息队列的开源项目中,我们耳熟能详的有 RabbitMQ、Kafka、RocketMQ、ActiveMQ、Puls
事件驱动的计算并不是什么新生事务。数据库世界中的人们使用数据库触发器已有多年了。这个概念很简单: 每当您添加,更改或删除数据时,都会触发一个事件以执行各种功能。新的事件是这些类型的事件和触发器在其他领域的应用程序中激增,例如自动扩展,自动修复,容量规划等。事件驱动架构的核心是对系统上的各种事件做出反应并采取相应的行动。
在云原生环境中,异步架构对于解耦服务、增强可伸缩性和增强系统可靠性至关重要。消息队列构成了异步架构的基础,您可以从诸多选项中选择一个,从开源工具如Kafka和RabbitMQ到托管系统如Google Cloud Pub/Sub和AWS SQS不等。然而,测试排队的异步工作流呈现出独特的挑战。本文探讨了使用OpenTelemetry测试这些工作流的实用方法,重点关注成本效益、资源优化和运维简单性。
个人理解:我把它分成两个词消息和队列。当一大批客户端同时产生大量的网络请求(消息)时候,服务器的承受能力肯定是有一个限制的。这时候要是有个容器,先让这些消息排队就好了,还好有个叫队列的数据结构,通过有队列属性的容器排队(先进先出),把消息再传到我们的服务器,压力减小了好多,这个很棒的容器就是消息队列
随着互联网的高速发展,用户规模与业务并发量开始急剧增加,海量的请求需要接收和存储,业务需要中间件来实现削峰填谷;业务也在不断发展,企业内部的系统数量也在不断地增长,不同语言开发出来的系统需要统一的事件驱动;大数据、AI已经成为很多业务中不可或缺的技术,它们都需要统一的数据源。越来越多的场景离不开消息队列,稍具规模的业务,消息队列都是“标配”。
要做技术选型,那么必须对现今的各个消息中间件有个深入的理解才能做技术选型。否则别人问你,你为什么要用这个消息中间件,你说不出个所以然来,怎么做架构师呢?
Iterable 公司每天代表客户发送大量营销消息,包括电子邮件、通知、短信、应用程序消息等,并且每天处理更多的用户数据更新、事件、自定义工作流状态。Iterable 日常处理的很多消息都可能触发系统中的其他操作,从而导致系统越来越复杂,产品易用性越来越低。随着客户数量不断增加,降低系统复杂性迫在眉睫。
当我试图用一则通俗的比喻来说明这个概念的时候,我想到一个有意思的比喻:如果把队列抽象成一个集合体,那么消息队列也就是一堆消息的集合。按照这个思路我想到了「杂志」。这不就是一堆消息的集合吗,关心这些消息的人都能通过「购买」来获得这些消息,而我可以通过不同种类的「杂志」或许到不同的消息。并且如果我作为出版方,我可以提供所有出版过的「杂志」,也可以选择让读者只能购买近期的。
消息队列是当代分布式系统架构中非常重要的一部分,在应用解耦、流量削峰、异步通信等方面有非常多的应用场景。目前最为我们所熟知的消息队列有:ActiveMQ、Kafka、RabbitMQ、Pulsar和RocketMQ,他们都有哪些优势和劣势, 我们应该如何选择呢?相信这是摆在很多开发者面前的问题。
导语 | 消息队列是分布式系统中重要的中间件,在高性能、高可用、低耦合等系统架构中扮演着重要作用。本文对Kafka、Pulsar、RocketMQ、RabbitMQ、NSQ这几个消息队列组件进行了一些调研,并整理了相关资料,为业务对MQ中间件选型提供参考。 一、概述 消息队列是分布式系统中重要的中间件,在高性能、高可用、低耦合等系统架构中扮演着重要作用。分布式系统可以借助消息队列的能力,轻松实现以下功能: 解耦,将一个流程的上游和下游拆开,上游专注生产消息,下游专注处理消息。 广播,一个上游生产的消息轻松被
snakeMQ是一个跨平台的Python消息队列库。消息队列让不同主机间通信变得简单可靠。使用snakeMQ,只需要发送消息,剩下的事都交给snakeMQ处理。
今天,我们一起来看CloudEvents,并不是一款成熟的软件系统,而更像是一种协议与标准。不过,它提出的相关概念,对我们开发与设计软件系统时,很有参考意义。
可能你在没学消息中间件之前都已经听过很多概念了,JMS,AMQP,ActiveMQ,RabbitMQ,Kafka,RocketMQ,一个消息中间件怎么能搞出怎么多概念?乱不乱啊, 别烦,本文从历史的角度帮你理清这些MQ和协议之间的关系。
消息队列(Message Queue,简称 MQ)是一种异步的消息传递中间件,它解耦了应用程序之间的通信。应用程序可以将消息发送到队列,而无需知道谁会接收这些消息。接收应用程序可以从队列中检索消息,而无需知道谁发送了这些消息。消息队列是一种重要的中间件,它可以帮助应用程序之间进行异步、可靠、可扩展的通信。常见的消息队列中间件有ActiveMQ,RabbitMQ,Kafka......今天我们就来介绍RabbitMQ。
延迟消息就是字面上的意思:当接收到消息之后,我需要隔一段时间进行处理(相对于立马处理,它隔了一段时间,所以他叫延迟消息)。
对于 单队列,单进程的queue, 是满足先入先出的特点的,本身是有序的,但是如果有多个队列或多个消费者线程的时候,可能会产生乱序的问题。
在提供了微服务的基础设施后,我们可以放手开发各个微服务了。业务服务层是一些“基础微服务”或“业务微服务”,他们“各司其职”,服务之间的耦合应当做到最低。
导语 Pulsar Summit Aisa 2021 将于2022年1月15-16日以线上直播的形式举办。 大会将分为主论坛和分论坛,汇聚技术大咖和行业先行者分享 Apache Pulsar 实践经验、用户案例、技术探究和运维故事,交流探讨 Pulsar 项目最新进展和动态,彼此切磋。 关于 Pulsar Summit Pulsar Summit 是由 StreamNative 组织的 Apache Pulsar 社区年度盛会。于此盛会,大家分享 Apache Pulsar 实践经验、用户案例、技术探究
消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一。
关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时候把这块的知识整理记录一下了。
消息队列和事件流是事件驱动架构的关键组成部分,但它们究竟有何异同?在什么情况下应选择它们的哪一个?
那说到异步,很多人第一反应是线程池。但是有一说一,和线程池比起来,消息队列才是异步的精华。
作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。
消息队列不知道大家看到这个词的时候,会不会觉得它是一个比较高端的技术,反正我是觉得它好像是挺牛逼的。
最近业务中有有这样一个场景,就是用户在商城下单之后,如果30分钟没有付款,那么就需要将这个订单处理掉,要么直接删除,要么直接标识为失效状态,为什么要这么做?
Cloud Native Computing Foundation,云原生计算基金会(以下简称CNCF)是一个开源软件基金会,它致力于云原生(Cloud Native)技术的普及和可持续发展。云原生技术是通过一系列的软件、规范和标准帮助企业和组织,在现代的动态环境(如公共云、私有云和混合云)中构建和运行敏捷的、可扩展的应用程序。容器、微服务、微服务治理、声明式API等都是代表性的云原生技术。这些技术使松散耦合的系统具有更好的弹性、可管理性,同时更容易被监控和观察。这些技术通过与强大的自动化工具相结合,允许工程师频繁地、可预见地对系统进行任意的更改,并尽可能减少由此带来的工作量(在这些云原生技术和框架被采用之前,相信大家都有过针对系统任何一个小改动,都需要整个开发、测试、运维团队投入大量工作的痛苦经历),而这就是云原生技术最希望为技术团队以及业务带来的价值。
开源的消息代理和队列服务器,通过普通协议在完全不同的应用间共享数据,使用Erlang语言编写,并且基于AMQP协议。
领取专属 10元无门槛券
手把手带您无忧上云