问 HN:为什么基于消息队列的架构现在似乎不太流行?
Ask HN: Why do message queue-based architectures seem less popular now?

原始链接: https://news.ycombinator.com/item?id=40723302

在 2000 年代末和 2010 年代初,人们对利用 Amazon SQS、RabbitMQ 和 ZeroMQ 等消息队列构建大规模分布式系统产生了浓厚的兴趣。 公司经常通过博客分享他们使用这些队列在组件之间进行异步交互的经验。 然而,按照今天的标准,此类文章的数量越来越少。 这种转变可能归因于以下几个因素: 1. Redis 因其在解决许多消息队列用例方面的多功能性以及缓存功能而受到关注,使其成为一种经济上有吸引力的替代方案,而无需额外的消息代理。 2. 数据库的改进使它们能够有效地处理大规模数据,从而使设计人员能够在主要数据结构中存储暂时的应用程序状态。 3. 消息队列驱动的设计被认为表现不佳,导致通过不同的方法构建系统。 4. 这项技术的成熟导致其实施的兴奋度降低。 尽管如此,尽管对消息队列的关注度有所下降,但它们仍然被广泛使用。 我们鼓励设计或实施以消息队列为中心的新项目的人员分享见解,并讲述在实际环境中操作消息队列解决方案时遇到的任何挑战。

在 2000 年代末和 2010 年代初,Amazon SQS、RabbitMQ 和 ZeroMQ 等消息队列因其在异步节点通信中的作用而成为构建分布式系统的流行选择。 公司通过博客分享成功故事。 然而,目前的讨论很少提及这种方法。 这种转变的原因可能包括: 1. Redis 除了缓存之外还处理许多消息队列功能,从而使独立代理变得多余。 2. 改进的管理高规模的数据库功能使设计人员能够在主要数据结构中存储瞬态应用程序状态。 3. 消息队列架构没有预期的那么有效,导致需要新的开发方法。 4. 技术的成熟降低了兴奋度,但仍保持广泛使用。 邀请那些设计/实现以消息队列为中心的新项目的人分享经验。 有关在实时基础设施中使用消息队列的挑战或经验教训的见解也将受到欢迎。
相关文章

原文
In the late 2000s and early 2010s, I remember seeing lots of hype around building distributed systems using message queues (e.g. Amazon SQS, RabbitMQ, ZeroMQ, etc.) A lot of companies had blog posts highlighting their use of message queues for asynchronous communication between nodes, and IIRC the official AWS design recommendations at the time pushed SQS pretty heavily.

Now, I almost never see engineering blog posts or HN posts highlighting use of message queues. I see occasional content related to Kafka, but nothing like the hype that message queues used to have.

What changed? Possible theories I'm aware of:

* Redis tackled most of the use-case, plus caching, so it no longer made sense to pay the operational cost of running a separate message broker. Kafka picked up the really high-scale applications.

* Databases (broadly defined) got a lot better at handling high scale, so system designers moved more of the "transient" application state into the main data stores.

* We collectively realize that message queues-based architectures don't work as well as we hoped, so we build most things in other ways now.

* The technology just got mature enough that it's not exciting to write about, but it's still really widely used.

If people have experience designing or implementing greenfield systems based on message queues, I'd be curious to hear about it. I'd also be interested in understanding any war stories or pain points people have had from using message queues in production systems.

联系我们 contact @ memedata.com