分布式架构资料教程

     

分布式系统的仲裁模式

1563
任何分布式系统的常量之一是失败。我们构建的系统能够抵御故障。假设我们想要复制到集群中的不同节点以实现高可用性和容错。我们需要问的下一个问题是——我们集群中有多少节点需要确认他们从原始服务器获得了复制副.

donnemartin/system-design-primer:学习如何设计大型系统、准备系统设计面试

1692 15K

学习如何设计可扩展系统将帮助您成为一名更好的工程师。系统设计是一个广泛的话题。网络上散布着大量关于系统设计原则的资源。此 repo 是一个有组织的资源集合,可帮助您学习如何大规模构建系统。点击标题进入.

从单体迁移到微服务的十二种方法

1546 1 8K
你的团队决定是时候摆脱那个旧的、笨重的单体了,它运行得很好,但是单体已经变得如此之大,以至于你花费更多的精力来维护它而不是添加功能。这里有 12 个技巧,可帮助您尽可能顺利地过渡到微服务。#1 确保你.

软件架构图表与模式介绍

1724 1 9K
软件架构是任何成功软件系统的基础,并且会影响整个系统生命周期中的可维护性、可扩展性、稳定性和安全性等方方面面。实施新软件系统的第一步是架构图.随着软件系统和 Web 应用程序变得越来越复杂,精心设计的.

19种分布式系统设计模式 - Nishant

2100 2 6K
涉及与分布式系统相关的常见设计问题的关键模式:1. 布隆过滤器布隆过滤器是一种节省空间的概率数据结构,用于测试元素是否是集合的成员。它用于我们只需要知道元素是否属于它应该所在的地方(缓存)。在BigT.

Mata解决了缓存何时失效的世纪难题? - Lu

1201 1 2K

我们在 Meta/FB 的工程博客上写了一篇文章,介绍了我们如何管理缓存失效的复杂性,并使缓存在此过程中更加一致。我相信所描述的方法应该适用于大多数基于失效的缓存。缓存失效在计算机科学中可能不再是一件.

缓存失效本身是一个难题 - Marc

1308

Meta 的缓存失效方案论文涵盖了一些看起来很酷的可观察性和正确性工作。但我认为他们低估了从根本上使缓存变得困难的原因。为什么缓存是有趣的?它们提供更便宜、更快速或更可扩展的数据访问。它们通过定位、分.

system-design-resources: 最好的系统设计英文资源

979 11K

这些是 Internet 上系统设计的最佳资源。视频处理大规模转码视频:https ://www.egnyte.com/blog/2018/12/transcoding-how-we-serve-vi.

数据库会演变成分布式计算平台吗? - Nikita

1244 1 2K

“数据库”一词是否会在 5 到 10 年内慢慢演变成“分布式计算平台”?随着无服务器市场的扩大,更多的数据库解决方案开始考虑模块化架构,其中系统的各个组件都是分开的。这允许为每个无服务器租户分配此类组.

架构师职业回归:分布式系统架构师 - Leon

1295 1

不久前,在一个并不遥远的IT世界里,架构师的角色被认为是不必要的。开发人员精通他们在大学数据库和网页设计课上学到的三层架构和ERD。精通对象建模、UML图解和文档的架构师只是臃肿的,是已逝的瀑布时代的.

程序员相信的关于时间方面的谎言

1086

以下所有这些假设都是错误的一天总是有24小时。月份有 30 天或 31 天。一年有365天。二月总是28天。任何 24 小时周期将始终在同一天(或一周或一个月)开始和结束。一周总是在同一个月开始和结束.

数据的存储和查询分离不利查询性能 - thenewstack

666

数据领域充斥着供应商、行业专家,甚至是记者,他们支持将存储和计算解耦的优点。毕竟,解耦的方法更容易独立地扩展计算和存储,它既适合云的业务模型,也适合其对象存储架构。但这里有一点通常不会大声说出来:解耦.

waraft: Erlang的Raft实现

835

WARaft是WhatsApp使用Erlang编写的一个Raft库。它提供了一个Erlang实现,在复制的状态机之间获得共识。共识是容错分布式系统的一个基本问题。WARaft已被用作WhatsApp消.

从架构师思维看分布式事务两种技术方案 - banq

1834 1
程序员从无到有构建代码,应该注重组合思维,做出来的东西需要能够相互组合在一起;而架构师是从上而下的视角,因为不参与具体细节构建,但为了落地,应该具有多维度多维度视角,从程序员到架构师思维转变很重要。下.

优步的紧急按钮及其背后的技术

675 2K

uber的紧急按钮的第一个版本于 2015 年在印度推出。原始系统允许乘客和司机在留在应用程序内的同时联系当地警察当局,并自动提醒区域支持团队主动联系用户。2018 年,该团队利用增强功能改进系统,例.

变更数据捕获CDC几种应用场景 - RTInsights

1157

在现代微服务驱动架构中,CDC 通过提供连接传统数据库与云原生、事件驱动架构的桥梁而获得了新的重要性。变更数据捕获 (CDC) 是一种数据集成模式,用于跟踪数据中何时以及发生了哪些变化,然后提醒其他必.

分布式系统唯一主键标识符ID生成机制比较 - Encore

983 4K

在构建任何分布式或非分布式系统时,您最终会处理许多数据ID标识符,从数据库行一直到生产系统版本的ID标识符。决定如何生成标识符有时非常简单;例如,您可能只是将一个自动递增ID的数字作为您的数据库中的主.

Web3是中心化的且效率低下 - neelc

863 2K

很多Web3平台实际上是中心化的。你的钱包(MetaMask),市场(OpenSea),API(Alchemy)都是中心化平台。当然,他们使用分布式数据库(区块链),但在此之前,它仍然是AWS上的Go.

levkk/pgcat:Rust支持分片、负载平衡和故障转移的PostgreSQL池。

829

类似PgBouncer支持分片、负载平衡和故障转移支持的 PostgreSQL 池程序。特点: 会话模式:在会话模式下,客户端在连接期间与一台服务器对话。 事务模式:客户端在单个事务期间与一个服务器对.

大规模分布式系统中的级联故障 - stuttgart

1448 2K
对谷歌、亚马逊和 Co.等公司来说服务的可靠运行非常重要,但它们的系统一次又一次地出现故障,导致大量中断和糟糕的客户体验。人们经常会遇到所谓的级联 故障,导致超出普通系统故障的不良并发症。即使是在线业.

谷歌向CNCF捐赠了Knative

938 1

根据infoworld报道:在多年来表示没有计划将开源的Knative项目捐赠给云原生计算基金会(CNCF)之后,谷歌突然决定将Knative作为孵化项目捐赠,该项目已经于3月2日被CNCF接受。Kn.

Apache Pulsar分布式事务机制

1365

Pulsar 事务 (txn) 使事件流应用程序能够在一个原子操作中消费、处理和生成消息。开发此功能的原因可以总结如下。随着流处理的兴起,对具有更强处理保障的流处理应用的需求也随之增长。例如,在金融行.

断路器真的有效吗?重试会让情况更糟糕! - brooker

917 2 2K

现代分布式系统被设计为允许发生系统中一部分故障,即使不能取悦所有人,也会继续为一些客户提供服务。而断路器的设计是为了将部分故障变成完全故障。这属于:一种机制可能会打败另一种机制。在部署断路器之前,请确.

库 vs 服务 vs 侧车Sidecar的比较

789

所有软件应用程序都由可重用的元素组成。这些可重用元素的目标和功能从基础设施级别到安全级别到业务能力各不相同。本文的目的是比较用于构建和部署这些可重用元素的不同方法。 1.库包这是重用代码的最广泛使用的.

预测微前端的未来 - luca

1241 1 5K

微型前端架构的主要挑战之一是回答这个问题:微型前端有多 "微"?这是一个很多组织都面临的问题,在现实中,并不是只有一个答案,我们需要了解背景,组织结构和规模,以及团队之间的沟通流程。在与多个从事分布式.

最大个人直播平台Twitch如何实现99.99%高可用性?

1085 1 5K

Twitch是世界上最大的个人流媒体直播平台,客户端观看Twitch的方式有很多,包括桌面浏览器、移动设备、游戏机和电视应用程序。客户端交付平台团队拥有向用户交付Twitch客户端的基础设施。去年,我.

分布式后台作业调度器JobRunr介绍 - JAXenter

3537 1 5K

JobRunr 分析所有作业并将其序列化为 SQL 或 NoSQL 数据库的可读 JSON。如果创建了太多后台作业,您可以通过启动更多应用程序实例来水平扩展。由于作业以 JSON 格式存储在中央数据库.

世界著名云服务SaaS公司的开源替代项目列表

1001

知名 SaaS 产品的开源创业替代品清单,点击标题进入Github,种类包含: API平台 身份验证和 SSO 后端即服务 商业智能 内容管理系统 云储存 客户数据平台 客户参与 网络安全 电子商务 .

什么是分布式系统的利特尔定律? - nurkiewicz

1570

利特尔定律(Little's law)是一个令人震惊的方程式,它非常简单,但它可以为你的分布式系统的能力带来惊人的洞察力。举例:首先,假设我们去一个杂货店。想象一下,有一个店员,平均在四分钟内处理一个.

平台工程的十大谬误 - Humanitec

1281 1 5K

去年,我们与 1850 多个工程组织进行了交谈。大多数人正在计划或已经在构建内部开发人员平台。以下是我们看到这些团队陷入的最艰难的教训和谬误。平台工程、内部开发者平台和开发者自助服务总体上是一个快速增.