展开讨论

经验与复盘经验摘录 · 机器翻译

我曾经是一家公司的CTO,这家公司的所有服务每天处理大约10万次请求

我曾经是一家公司的CTO,这家公司的所有服务每天处理大约10万次请求。我们逐渐增长到数百万次,最终达到数千万次,但在这个过程中,我们团队的一名工程师决定利用LISTEN/NOTIFY语义来构建一个队列,以便利用与我们其他数据模型一致的强一致性,这在当时看起来是合理的,因为LISTEN/NOTIFY并不难理解,而我们确实需要这个工作流的一致性保证,这将消除另一个数据存储和传输的地方。但实际上,这最终变得非常棘手,因为要扩展功能(因为我们“自己”构建了它),不得不绕过内部的pg语义(我们早就应该更快地迁移出去了)。它也很难扩展。我们最终在RDS实例上遇到了很多磁盘争用问题,而且这些问题是非显而易见的,该表的vacuum运行简直是一场噩梦。…

源讨论Postgres的LISTEN/NOTIFY实际上是可以扩展的原帖 84 条评论 · 导入时统计
3

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 3

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

ZM

很少有新的组件能超越其他因素。但我要说的是,令人难以置信的优势在于,令人意想不到的是,你的队列系统与其他架构部分是独立的:它是唯一一个原生支持存储和转发的组件,如果你能保持它的生命周期独立,就可以利用这一点在更新、故障排除、补丁窗口等期间将其他系统解耦。

完整原文
HM

并不是带着恶意说这句话: 在我看来,这可以归结为“不理解其工作原理就使用工具是无法扩展的”。是的,普通的监听/通知机制无法扩展。但作者实际上找到了使其可扩展的方法。所以你的工程师不需要自己去做了。 随着社区的发展,随着时间的推移,分布式系统也会逐渐明白每个组件能做什么,结果发现,从较少的组件开始,等到真正需要的时候再添加一些组件,会使得系统更加健康。

完整原文
EU

我觉得这是一个管理问题,我不同意关于在基础设施堆栈中添加一个组件的结论。"我的开发人员不想参与我们堆栈的某一部分",在我看来,这不是添加一个新的网络节点的正当理由。让他们去处理它就行了。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。