• 涉及与分布式系统相关的常见设计问题的关键模式: 1. 布隆过滤器布隆过滤器是一种节省空间的概率数据结构,用于测试元素是否是集合的成员。它用于我们只需要知道元素是否属于它应该 icon
  • 软件架构是任何成功软件系统的基础,并且会影响整个系统生命周期中的可维护性、可扩展性、稳定性和安全性等方方面面。实施新软件系统的第一步是架构图.随着软件系统和 Web 应用程序变得越来越复杂,精心设计的系统架构图对于与其他开发人员和利益相关者进行交流变 icon
  • 你的团队决定是时候摆脱那个旧的、笨重的单体了,它运行得很好,但是单体已经变得如此之大,以至于你花费更多的精力来维护它而不是添加功能。这里有 12 个技巧,可帮助您尽可能顺利地过渡到微服务。 #1 确保你知道你在做什么 icon
  • 数据复制是制作数据项的多个副本以确保可用性的过程。复制的数据通常存储在不同的数据库实例中,因此即使一个实例发生故障,我们也可以从其他实例中获取数据。实现数据复制的一种流行架构是主从架构。 主从架构为 icon
  • 点对点(P2P)协议使建立分散的应用程序更容易,无需任何额外的服务器或网络基础设施就可以工作。与集中式平台相比,它们提供了更多的隐私和弹性,并减少了建立使人们能够共享数据的应用程序的障碍。然而,有几个可供选择,要弄清楚哪一个适合你的用例,可能是令人生畏的。 icon
  • 不久前,在一个并不遥远的IT世界里,架构师的角色被认为是不必要的。开发人员精通他们在大学数据库和网页设计课上学到的三层架构和ERD。精通对象建模、UML图解和文档的架构师只是臃肿的,是已逝的瀑布时代的遗物。 这在云计算时代已经完全改变了。现代的架构 icon
  • “数据库”一词是否会在 5 到 10 年内慢慢演变成“分布式计算平台”?随着无服务器市场的扩大,更多的数据库解决方案开始考虑模块化架构,其中系统的各个组件都是分开的。这允许为每个无服务器租户分配此类组件的一个实例,从而在用户之间提供清晰的分离。这种分解数据库并模块化的解决方案也是使其 icon
  • 我们在 Meta/FB 的工程博客上写了一篇文章,介绍了我们如何管理缓存失效的复杂性,并使缓存在此过程中更加一致。我相信所描述的方法应该适用于大多数基于失效的缓存。缓存 icon
  • 在我们开始比较内部部署与云计算与雾计算与边缘计算之前,我们需要退一步,使用#第一原则思考,首先以逐步的方式定义这些术语。 让我们从什么是计算开始?  为了我们的目的,让我们保持简单:它是由计算设备(硬件或软件)执行的活动或过程,以实现一个特定的目标 icon
  • 学习如何设计可扩展系统将帮助您成为一名更好的工程师。系统设计是一个广泛的话题。网络上散布着大量关于系统设计原则的资源。此 repo 是一个有组织的资源集合,可帮助您学习如何大规模构建系统。点击标题进入 准备系统设计面 icon
  • 任何分布式系统的常量之一是失败。我们构建的系统能够抵御故障。假设我们想要复制到集群中的不同节点以实现高可用性和容错。我们需要问的下一个问题是——我们集群中有多少节点需要确认他们从原始服务器获得了复制副本,然后我们才能说对这个分布式系统的更新是成功的?”Quoru icon
  • 速度极快的 Rust、现代共识协议和可靠的异步运行时——该项目旨在为下一代分布式数据存储系统(SQL、NoSQL、KV、流式传输、图形......或者更奇特的东西)提供共识主干)。 这个 crate 与其他 Raft 实现的不同之处在于: icon
  • 在将近25年之后,我将完整地发表《分布式计算宣言》,这是亚马逊早期的一份内部文档,它改变了我们电子商务平台的架构。 亚马逊的系统架构的一个非常简短的历史: 在我们深入了解亚马逊的架构历史之前,先了解一下我 icon
  • Meta 的缓存失效方案论文涵盖了一些看起来很酷的可观察性和正确性工作 icon
  • Timestone:Netflix 的高吞吐量、低延迟优先队列系统,内置支持不可并行化的工作负载。 Timestone 是我们内部构建的高吞吐量、低延迟优先级排队系统,用于支持我们的媒体编码平台 icon
  • 这些是 Internet 上系统设计的最佳资源。 视频处理大规模转码视频:https ://www.egnyte.com/blog/2018/12/transcoding-how-we-serve-vide icon