Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
分布式共识一致性教程
19种分布式系统设计模式 - Nishant
涉及与分布式系统相关的常见设计问题的关键模式: 1. 布隆过滤器布隆过滤器是一种节省空间的概率数据结构,用于测试元素是否是集合的成员。它用于我们只需要知道元素是否属于它应该
缓存高一致性:Meta的缓存失效解决方案
缓存有助于减少延迟、扩展读取繁重的工作负载并节省成本。它们实际上无处不在。缓存在您的手机和浏览器中运行。例如,CDN 和 DNS 本质上是地理复制缓存。多亏了许多在幕后工作的缓存,您现在可以阅读这篇博文。 Phil Karlton 有句名言:“计算
从架构师思维看分布式事务两种技术方案 - banq
程序员从无到有构建代码,应该注重组合思维,做出来的东西需要能够相互组合在一起;而架构师是从上而下的视角,因为不参与具体细节构建,但为了落地,应该具有多维度多维度视角,从程序员到架构师思维转变很重要。 下面这篇文章谈了架构师的多维度视角:
事件溯源CQRS不必引入最终一致性 - jamesmh
事件溯源经常会被误解。这包括自动使用事件溯源意味着您必须在系统中各处引入最终一致性的想法。
比UUID更快:如何生成分布式唯一时间戳标识符 - vanillajava
本文介绍了一个直接支持分布式标识符生成的实现。 1. 分布式系统中的并发标识符生成每个主机都有一个预定义的唯一主机标识符或hostId 。
基于Postgres逻辑复制的推送式发件箱模式
只有几个模式让我觉得很舒服:“如果你想构建成熟的系统,你应该一直使用它”。其中之一是发件箱模式。为什么?因为它保证了你的业务流程和沟通不会卡在中间。正如我在发件箱中解释的,收件箱模式和交付保证解释了:发件箱模式确保消息至少成功发送(例如发送到队列)一次。使用这种模式,我们不是
tikv/raft-rs:在 Rust 中实现的 Raft 分布式共识算法源码
在构建分布式系统时,一个主要目标通常是构建容错。也就是说,如果网络中的一个特定节点出现故障,或者存在网络分区,则整个集群不会发生故障。参与分布式共识协议的节点集群必须就价值达成一致,一旦达成该决定,该选择即为最终决定。分布式共识算法通常采用复制状态机和日志的形式。每个状态机接受来自其
分布式系统中的数据复制
数据复制是制作数据项的多个副本以确保可用性的过程。复制的数据通常存储在不同的数据库实例中,因此即使一个实例发生故障,我们也可以从其他实例中获取数据。实现数据复制的一种流行架构是主从架构。 主从架构为
bastion-rs/bastion:类似Akka的高可用分布式容错Rust运行时
Bastion 是一个高可用、容错的运行时系统,具有动态的、面向调度的、轻量级的进程模型。它通过轻量级进程实现提供类似参与者模型的并发性,并有效地利用所有系统资源来保证最多一次的消息传递。特点: 基于消息的通信使这个项目成为一个精益的Actor系统网格。
如何横向扩展 PostgreSQL?
水平扩展是在不影响数据完整性、事务安全性和查询性能的情况下跨多个服务器分布数据的艺术和科学。 只读副本只读副本通常指的是“备用”服务器,它冗余地复制主服务器上的所有数据,持续与主服务器保持同步,并允许客户端
分布式系统的仲裁模式
任何分布式系统的常量之一是失败。我们构建的系统能够抵御故障。假设我们想要复制到集群中的不同节点以实现高可用性和容错。我们需要问的下一个问题是——我们集群中有多少节点需要确认他们从原始服务器获得了复制副本,然后我们才能说对这个分布式系统的更新是成功的?”Quoru
async-raft:使用 Tokio 框架实现 Raft 分布式共识协议
速度极快的 Rust、现代共识协议和可靠的异步运行时——该项目旨在为下一代分布式数据存储系统(SQL、NoSQL、KV、流式传输、图形......或者更奇特的东西)提供共识主干)。 这个 crate 与其他 Raft 实现的不同之处在于:
如何探测不健康 Kafka 消费者并将其自动重启?
在 Cloudflare,我们采取措施确保我们在基础设施的各个层面都能抵御故障。这包括 Kafka,我们将其用于关键工作流程,例如发送对时间敏感的电子邮件和警报。 我们学到了很多关于保持利用 Kafka 的应用程序健康的知识,因此它们可以始终运行。
分布式系统中的内存限速器 - ajin
在多台服务器分布在世界各地不同地区的情况下,为每台服务器实施速率限制器将导致两个主要问题: 不一致 竞争条件 在本文中,我们将探讨这两个主要问题,以及我们如何实施更好的策略来解决分布式系统的
分布式数据库的复制原理 - Quastor
如果您对后端工程感兴趣,那么设计数据密集型应用程序 (DDIA) 是必读的。数据工程世界充满了流行语和炒作,但Martin Kleppman在分解所有核心技术方面
集合set复制:通过锁定广播实现无全序的容错算法
虽然状态机复制是实现任何理想功能的黄金标准,但它需要对所有交易 (事件)进行完全的总排序(全序),在某些情况下,这种开销是不必要的。 事实证明,在许多自然用例中,特别是规范的简单代币支付用例,不需要全序:作为一个具体的例子,假设 Alice 正在将
waraft: Erlang的Raft实现
WARaft是WhatsApp使用Erlang编写的一个Raft库。它提供了一个Erlang实现,在复制的状态机之间获得共识。共识是容错分布式系统的一个基本问题。WARaft已被用作WhatsApp消息存储的共识提供者,这是一个跨越5个以上数据中心的大规模强一致性存储系统。
时钟和因果关系 - 分布式系统中的排序事件
系统事件可以根据它们发生的时间来排列。时钟计时并产生时间戳。传统时钟(例如时钟)使用通用参考来了解时间。该参考可以是内部硬件或使用 NTP 等协议提供时间的公共服务。然而,由于时钟漂移和/或网络时间延迟的假设,传统时钟的时间戳并不总是相互比较,因此无法使用传统时钟的时间戳可靠地排序事件。</
上页
下页