5 天前 / 咖啡拿铁
背景 之前琢磨了很久一直想写一篇 pulsar 相关的文章,但是一直知识储备不够,对于很多细节还是不了解,于是查了很多资料,总算是可以凑出一篇文章了。 Pulsar 是一个由 yahoo 公司于 2016 年开源的消息中间件,2018 年成为 Apache 的顶级项目。在我之前的文章中写过很多其他消息中间件的文章,比如 kafka,rocketmq 等等,如果大家对于消息队列不了解的可以阅读以下我之前的文章: 你需要了解的 kafka 你应该知道的 RocketMQ 聊聊计算和存储分离 在开源的业界已经有这么多消息队列中间件了...
11 天前 / djwang
友情提示:全文 5000 多文字,预计阅读时间 3 分钟 一、自研消息队列中间件 AMQP 的背景 随着公司公有云业务持续发展和用户数量的不断增长,数据量和请求量也在急剧增长,消息队列作为必不可少的通信组件,面临的压力也在日益增长。在对消息队列的组件维护中我们发现:OpenStack 使用的消息队列 RabbitMQ 存在一些问题,比如消息易丢失,集群稳定性差,问题排查困难等。诸多难以解决的问题使我们萌生了寻求替代开源 RabbitMQ 消息队列的想法;另一方面,主流云服务厂商,如阿里云、华为云、天翼云等均已提供 AMQP 协议支持的消息队列产品...
28 天前 / HueiFeng
消息队列(Message Queue)是分布式系统必不可少的中间件,大部分消息队列产品(如 RocketMQ/RabbitMQ/Kafka 等)要求团队有比较强的技术实力,不适用于中小团队,并且对。NET 技术的支持力度不够。而 Redis 实现的轻量级消息队列很简单,仅有 Redis 常规操作,几乎不需要开发团队掌握额外的知识! 随着强大的。NET5 发布,.NET 技术栈里面怎可没有最佳的消息队列搭档? 本文从高性能 Redis 组件 NewLife.Redis 出发,借用快递业务场景,讲解。
82 天前 / Golang梦工厂
前言昨天发了一篇文章是关于 machinery 的入门教程,有一位读者在留言中问我 这个和 kafka 有什么区别?一时我也有点懵,这两个的概念很近,到底有什么不同呢?根据我自己的理解,简单分析了一下,有不足之处欢迎指出。 消息队列消息队列这个概念其实在我之前的文章:手把手教姐姐写消息队列,自己动手用 go 写一个简易版的消息队列,有兴趣的小伙伴们可以看一下这篇文章。回归正题,我们再来介绍一下什么是消息队列。 消息队列,一般我们会简称它为 MQ(Message Queue)。他是由两个单词组成,我们应该对队列 (Queue)很熟悉吧。
96 天前 / JAVA日知录
认识 MQ(Message Queue)什么是消息队列消息队列 首先我们先从以下几个维度来认识一下消息队列: 消息队列:一般我们会简称它为 MQ(MessageQueue)消息 (Message):传输的数据。队列 (Queue):队列是一种先进先出的数据结构。消息队列从字面的含义来看就是一个存放消息的容器。消息队列可以简单理解为:把要传输的数据放在队列中。把数据放到消息队列叫做生产者。从消息队列里边取数据叫做消费者。
125 天前 / Golang梦工厂
前言 这周姐姐入职了新公司,老板想探探他的底,看了一眼他的简历,呦呵,精通 kafka,这小姑娘有两下子,既然这样,那你写一个消息队列吧。因为要用 go 语言写,这可给姐姐愁坏了。赶紧来求助我,我这么坚贞不屈一人,在姐姐的软磨硬泡下还是答应他了,所以接下来我就手把手教姐姐怎么写一个消息队列。下面我们就来看一看我是怎么写的吧~~~。 本代码已上传到我的 github: 有需要的小伙伴,可自行下载,顺便给个小星星吧~~~ 什么是消息队列 姐姐真是把我愁坏了,自己写的精通 kafka,竟然不知道什么是消息队列,于是...
127 天前 / djwang
原文作者为 Luk Perkins,来自 Splunk 团队。 文章翻译已获得原作者授权。 消息队列是大多数大规模数据架构的主要组件。如果必须对数据进行实时处理,那么使用消息队列是很好的选择。 数据处理管道会发生各种故障,数据 consumer 可能会受到延迟或完全不能工作,网络分区可能会暂时切断整个 consumer 组与数据管道的连接等。 有些情况必须使用消息队列,例如: 开发拼车应用程序,不考虑高峰时段的使用峰值,需要确保每个乘车请求最终只匹配到一位司机金融级事务交易管道需要同步请求处理,以防止数据丢失搭建基于微服务的处理管道...
147 天前 / yes的练级攻略
每个时代,都不会亏待会学习的人。 大家好,我是 yes。 今天我们来谈一谈消息队列的事务消息,一说起事务相信大家都不陌生,脑海里蹦出来的就是 ACID。 通常我们理解的事务就是为了一些更新操作要么都成功,要么都失败,不会有中间状态的产生,而 ACID 是一个严格的事务实现的定义,不过在单体系统时候一般都不会严格的遵循 ACID 的约束来实现事务,更别说分布式系统了。 分布式系统往往只能妥协到最终一致性,保证数据最终的完整性和一致性,主要原因就是实力不允许。..因为可用性为王。
151 天前 / yes的练级攻略
每个时代,都不会亏待会学习的人 大家好,我是 yes。 今天我们就来谈一谈消息队列的推拉模式,这也是一个面试热点,例如你在简历里面写了 RocketMQ ,基本上会问你 RocketMQ 采用的是推模式还是拉模式啊?是拉模式?不是有 PushConsumer 吗? 今天我们就来谈谈推拉模式,并且再来看看 RocketMQ 和 Kafka 是如何做的。 推拉模式首先明确一下推拉模式到底是在讨论消息队列的哪一个步骤,一般而言我们在谈论推拉模式的时候指的是 Comsumer 和 Broker 之间的交互。
177 天前 / 搬运工来架构
消息队列 (MQ)的基本概念,很多时候都要了解清楚,这样在学消息队列中间件就比较能够游刃有余,遇到不清楚的也可以重新翻来看看,加深理解。这里有关于:优先级队列、延迟队列、死信队列、重试队列、消息回溯、消息堆积、消息追踪 / 消息轨迹、消息过滤、消息审计、消息路由等的介绍。 01 优先级队列 优先级队列不同于先进先出队列,优先级高的消息具备优先被消费的特权,这样可以为下游提供不同消息级别的保证。
243 天前 / reesunhuang
前文《万亿级消息背后:小米消息队列的实践》整体介绍了 Talos。 本文将深入介绍该系统设计中的关键问题—读写一致性。 Talos 消息队列做为一种特殊的存储系统,其一致性包含两方面: 存储层多副本数据一致性 调度层处理逻辑的读写一致性 前者由 Talos 基于 HDFS 的存储层来保障,本文将详细展开调度层一致性逻辑。 Talos 中的读写一致性问题做为一个消息队列系统,需要保证消息的读写一致性。
247 天前 / u128287
前两天发了工资,第一反应是想着要给远方的女朋友一点惊喜!于是打开了平安银行的 APP 给女朋友转点钱!填写上对方招商银行卡的卡号、开户名,一键转账!搞定!在我点击的那瞬间,就收到了 app 的账户变动的提醒,并且出现了图一所示的提示界面:“处理中,正在等待对方银行返回结果…”。嗯!毕竟是跨行转账嘛,等个几秒也正常!脑海开始浮现出女朋友收到转账后惊喜与感动的画面! 然而,一切并没有那么顺利,刚过一会儿,app 却如图二所示的提示我“由于收款人户名不符”导致转账失败!!! 刚刚都已经从我卡里扣过钱了,现在却提示我转账失败...
382 天前 / ytao
前言Redis 5 新特性中,Streams 数据结构的引入,可以说它是在本次迭代中最大特性。它使本次 5.x 版本迭代中,Redis 作为消息队列使用时,得到更完善,更强大的原生支持,其中尤为明显的是持久化消息队列。同时,stream 借鉴了 kafka 的消费组模型概念和设计,使消费消息处理上更加高效快速。本文就 Streams 数据结构中常用 API 进行分析。 准备本文所使用 Redis 版本为 5.0.5 。如果使用更早的 5.x 版本,有些 API 使用效果,与本文中描述略有不同。 添加消息Streams 添加数据使用 XADD 指令进行添加,消息中的数据以 K-V 键值对的形式进行操作。
388 天前 / 咖啡拿铁
这是一篇从去年写到今年的文章,希望大家会喜欢 1.背景 分布式事务一直是一个老生常谈的一个话题,在我的公众号下面下面已经写过很多篇分布式事务相关的文章了,但是依旧没有将其完全剖析。在之前的文章中我也多次提到我们可以使用消息队列来实现我们的分布式事务,但是大多都是一笔带过,很多读者都对这一块产生了很多疑问,希望读完这篇文章能让你理解如何用消息队列实现分布式事务。 当然首先要回顾一下我们的一些基本概念: CAPCAP定理,又被叫作布鲁尔定理。对于设计分布式系统来说(不仅仅是分布式事务)的架构师来说,CAP就是你的入门理论。
431 天前 / reesunhuang
万亿级消息背后的小米消息队列实践 往期文章回顾:Mysql数据实时同步实践目录业务背景架构与关键问题性能与资源优化平台化效率小米消息中间件的规划与愿景前文《消息队列价值思考》讲述了消息中间件在企业 IT 架构中的重要价值,本文将呈现这些价值在落地小米业务过程中的遇到的问题和实践经验;其主要内容是流式平台团队在 SACC 2019 (sacc.it168.com)大会上分享的主题,这里简单整理成文,供大家参考,其中一些重要问题的细节会在后续文章陆续展开;今天的主题主要包括以下几个方面的内容:业务背景:消息队列在小米落地的业务背景架构与关键问题:...