分布式CAP定理指南

     

分布式缓存综合指南

572 1 7K
一个重要的网站需要一个网络服务器来接收请求和一个数据库来写入或读取数据。但是,如果每秒收到数百万个请求,这种简单的设置只有在优化数据库或更改整体数据库策略后才能扩展。那是对的吗?数据库最终达到了活动连.

Kafka的关键配置min.insync.replicas

601

Kafka的关键配置min.insync.replicas :用户消息生产的客户端配置,表示消息生产者认为写入成功之前确认收到记录的代理数量。 - acks==0 — 发送请求时认为写入成功 - 无需.

为什么 Apache Kafka 不需要 Fsync 来保证安全?

499 2K

Apache Kafka 不需要 fsyncs 来确保安全,因为它在其复制协议中包含恢复。它是一个真实世界的分布式系统,使用异步日志写入 + 恢复,并内置一些额外的额外安全性。异步日志写入使其能够在各.

数据库分片解释

704 5K
您的应用正在变得越来越好。它有更多的功能,更多的活跃用户,并且每天收集更多的数据。您的数据库现在导致应用程序的其余部分变慢。数据库分片可能是您问题的答案,但许多人不知道它是什么,最重要的是,不知道何时.

时钟和因果关系 - 分布式系统中的排序事件

407

系统事件可以根据它们发生的时间来排列。时钟计时并产生时间戳。传统时钟(例如时钟)使用通用参考来了解时间。该参考可以是内部硬件或使用 NTP 等协议提供时间的公共服务。然而,由于时钟漂移和/或网络时间延.

什么是分布式事务?

714 1 3K
作为一名软件工程师,我一直想知道事务是如何工作的,以及它们在分布式系统中是如何管理的,所以我用谷歌搜索了一下,发现了很多模式和规范,比如 JTA、2PC、SAGA、事件驱动架构、发件箱等……在本文中,.

分布式系统关键概念和模式 - klarna

1002 4K

如果您在一家现代科技公司工作,您可能遇到过“分布式系统”一词。在这篇博文中,我将分两部分进行介绍,第一部分是关于关键概念和时间表,第二部分是关于行业中使用的一些模式。这篇博文的目的是分享足够的基础信息.

7个系统设计基础概念

931 1

任何系统设计面试肯定会要求您为您尝试构建的任何系统提出基本的高级设计。有一些组件是肯定需要的。记下这些组件:1、负载均衡器  如果没有负载均衡器来在各个节点之间分配传入请求,就不可能拥有分布式系统。这.

集合set复制:通过锁定广播实现无全序的容错算法

858 2K

虽然状态机复制是实现任何理想功能的黄金标准,但它需要对所有交易 (事件)进行完全的总排序(全序),在某些情况下,这种开销是不必要的。事实证明,在许多自然用例中,特别是规范的简单代币支付用例,不需要全序.

事件溯源CQRS不必引入最终一致性 - jamesmh

1808 1 3K
事件溯源经常会被误解。这包括自动使用事件溯源意味着您必须在系统中各处引入最终一致性的想法。有多种技术可以处理最终一致性。但是,也有一些技术和模式可以完全消除最终的一致性!在本文中,我想重点介绍一些使用.

常见缓存策略设计

1554 6K
本文将介绍缓存方面的一些挑战、使用的典型解决方案以及使用命令查询职责分离 (CQRS) 作为更好策略的概念。缓存都是关于延迟的低延迟请求是标准的非功能性要求,尤其是对于电子商务应用程序,因为人们普遍认.

使用Debezium实现缓存实时刷新 - gunnarmorling

921 1

俗话说计算机科学只有两件难的事:缓存失效和命名。好吧,事实证明第一个实际上已经解决了。了解如何在靠近用户的分布式缓存中保持数据的读取视图,始终与您的主数据存储更改数据捕获保持同步。你将学到如何: * .

用CAP定理解释成长型组织的大难题 - Nir

1707 1 2K

有人曾经告诉我,任何类型的团队或组织所经历的最艰难的转变是从大约 30 人增长到 60 人。当时,我记得我在想,“嗯,这很随意。当然,每个组织都是不同的。” 在某些方面,每个组织都是不同的。然而,我见.

分布式系统中的数据复制

1526 1 2K
数据复制是制作数据项的多个副本以确保可用性的过程。复制的数据通常存储在不同的数据库实例中,因此即使一个实例发生故障,我们也可以从其他实例中获取数据。实现数据复制的一种流行架构是主从架构。主从架构为了理.

分布式系统的仲裁模式

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

RabbitMQ的脑裂踩坑 - ryanrodemoyer

1904 2 4K

我的手表嗡嗡作响,在黎明前的昏迷中,我无法辨认这是警报还是电话。时间是凌晨 4 点 45 分:我们最大的客户报告说他们的请求需要两个多小时才能返回结果。我们认为这是因为我们的RabbitMQ消息系统。.

CECTC/dbpack: 用Golang编写的分布式事务中间件

1614 1

DBPack是一种以AT事务模式实现的DB网格解析,是一种分布式事务模型,不侵入业务逻辑,具有高性能。分布式事务、读写拆分和分片的数据库代理!支持任何语言!它可以部署为 pod 中的 sidecar。.

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

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

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

1195 1 2K

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

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

1303

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

缓存高一致性:Meta的缓存失效解决方案

1853 1

缓存有助于减少延迟、扩展读取繁重的工作负载并节省成本。它们实际上无处不在。缓存在您的手机和浏览器中运行。例如,CDN 和 DNS 本质上是地理复制缓存。多亏了许多在幕后工作的缓存,您现在可以阅读这篇博.

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

1083

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

两个将军问题与分布式Saga

1084 1 7K

想象一下,在一个山谷里有一座城市。在山谷的两边,有一支由将军指挥的军队。左边的山上站着爱丽丝将军和她的军队。右边的山头上,站着鲍勃将军和他的军队。爱丽丝和鲍勃想占领这座城市,但双方都没有足够大的军队来.

如何实现跨Mysql、Redis和Mongo分布式事务? - dongfu

1990 1 7K

如何组合多个存储引擎合并组成分布式事务?Mysql、Redis、Mongo都是非常火爆的存储,各有各的优势。在实际应用中,同时使用多个存储是很常见的,保证跨多个存储的数据一致性成为一种需求。本文给出了.

DTM:Golang中微服务架构的分布式事务框架

3899 1

一个支持多种语言的分布式事务框架,支持saga、tcc、xa、2-phase message、outbox patterns发件箱 第一个致力于微服务分布式事务解决方案的开源 Golang 项目。 支.

如何分片数据库? - stackoverflow

911 1 5K

分片是解决网络应用发展带来的新挑战的方法之一。其他解决方案包括 DBaaS(或云中的数据库)、新的数据库架构,或者只是增加用于存储的数据库数量的老式方法。 随着智能手机的出现,应用程序将我们消耗和产生.

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

914 2 2K

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

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

1562

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

分布式数据库架构原理 - Alex Petrov

1223 2K
Alex Petrov 是 Apple 的一名软件工程师。他写了一本关于 Database Internals 的精彩书籍,深入探讨了分布式数据系统的工作原理。我们将总结他关于数据库管理系统 (DBM.

系统设计:如何设计Youtube?

2146 2 7K

Youtube 是世界上最受欢迎的视频分享网站之一。该服务的用户可以上传、查看、分享、评价和报告视频以及添加对视频的评论。 系统的要求和目标为了这个练习,我们计划设计一个更简单的 Youtube 版本.