• Saga 模式将微服务之间的本地事务组合成所谓的“Saga”。这种模式的主要思想是,如果本地事务成功完成,下一个事务将按顺序运行。如果本地事务失败,必须启动一系列补偿动作,以取消所有先前事务的结果。 saga 模式通过管理本地事务的顺序运行及其补偿
  • DBPack是一种以AT事务模式实现的DB网格解析,是一种分布式事务模型,不侵入业务逻辑,具有高性能。 分布式事务、读写拆分和分片的数据库代理!支持任何语言!它可以部署为 pod 中的 sidecar。 icon
  • 在本文中,您将学习如何在 Spring Boot 应用程序中将 Kafka 事务与 Spring Kafka 项目一起使用。为了运行 Kafka 集群,我们将使用 icon
  • 如果您需要一个不可猜测的随机字符串(例如,用于会话 cookie 或访问令牌),可能很想获取一个 icon
  • 在本文中,我们将了解哪种 UUID(通用唯一标识符)类型最适合具有主键约束的数据库列。虽然标准的 128 位随机 UUID 是一个非常受欢迎的选择,但您会发现这非常适合数据库主键列。 通用唯一标识符 (UUID) 是一个 128 位伪随机序 icon
  • Redis 以其高性能和支持高读/写 QPS 的能力而闻名,这是作为分布式锁服务的后备存储非常理想的属性。此外,Redis 本身也支持 Lua 脚本。开源社区中有很多基于 Redis 的分布式锁的实现。总体而言,基于 Redis 的分布式锁比基于 MySQL 的分布式锁性能更高。下面我们来看 icon
  • 长时间运行的业务流程可能会持续几秒钟到几天,您无法使用分布式事务锁定服务中的资源。那么有什么选择呢?现实世界有一个解决方案,它是一种预订保留。预订模式允许您获得有时限的有限保证,允许您与其他服务进行协调。 预订模式一直在现实世界中使用。我们 icon
  • 我们在 Meta/FB 的工程博客上写了一篇文章,介绍了我们如何管理缓存失效的复杂性,并使缓存在此过程中更加一致。我相信所描述的方法应该适用于大多数基于失效的缓存。缓存 icon
  • 在自 2016 年以来,我们在 Mirakl 开始使用 Kafka 作为消息服务,以支持我们在微服务环境中的异步驱动架构。起初,Kafka 仅用于非关键服务,如电子邮件、审计或日志记录。这是一种安全的方法,因为我们对这项技术还没有完全的信心,尤其是我们对关系数据库的交易方面,这是处理 icon
  • 只有几个模式让我觉得很舒服:“如果你想构建成熟的系统,你应该一直使用它”。其中之一是发件箱模式。为什么?因为它保证了你的业务流程和沟通不会卡在中间。正如我在发件箱中解释的,收件箱模式和交付保证解释了:发件箱模式确保消息至少成功发送(例如发送到队列)一次。使用这种模式,我们不是 icon
  • 使用Golang构建的实用事件驱动微服务演示,用于部署的Nomad、Consul Connect、Vault和Terraform 其他版本可在以下位置找到: icon
  • 本文将教您如何在 Kubernetes 上运行 ActiveMQ,并通过 Spring Boot 将其与您的应用程序集成。我们将使用专门的操作员部署一个集群的 ActiveMQ 代理。然后我们将构建并运行两个 Spring Boot 应用程序:第一个在多个实例中运行并从队列接 icon
  • 任何分布式系统的常量之一是失败。我们构建的系统能够抵御故障。假设我们想要复制到集群中的不同节点以实现高可用性和容错。我们需要问的下一个问题是——我们集群中有多少节点需要确认他们从原始服务器获得了复制副本,然后我们才能说对这个分布式系统的更新是成功的?”Quoru icon
  • 让我们更深入地讨论在 Postgres 之上潜在的基于轮询的实现。 假设我们将使用的表结构: icon
  • 此示例演示如何使用变更数据捕获以安全可靠的方式实现Saga 模式,以实现跨多个微服务的分布式事务。基于#发件箱模式, icon
  • 分布式事务管理问题:如何处理跨多个服务的事务? icon
  • 假设我们有一个将其状态存储在数据库中的程序,我们希望其他程序在发生变化时做一些事情。例如,我们可能想在银行余额下降到某个阈值以下时发送电子邮件通知。这是应用程序使用Kafka等消息队列的一个非常常见的原因。不幸的是,当组件发生故障时,这种实现并不工作。我怀疑有很多真实的应用会 icon