分布式事务教程

     

解决Kafka消息丢失的一个简单办法

767 6K

虽然Kafka是一个功能强大的消息系统,但由于网络问题,我们可能会遇到一些不理想的情况。我们也遇到过由于网络问题导致的事件丢失,在试图避免这些丢失的同时,我们也遇到了由于相同原因导致的不同问题。在这篇.

使用 Vert.x 处理 Kafka 和数据库之间的背压

714 10K

异步编程在开发反应式和响应式应用程序方面带来了许多优点。然而,它也存在缺点和挑战,其中主要的问题之一是背压问题。什么是背压?在物理学中定义是:它是与管道中所需的流体流动相反的阻力或力我们可以把这个问题.

如何解决不同数据库和服务之间的事务问题?

465

在我这个项目中,有多个数据库和服务需要无缝通信和交换数据。然而,在这些不同的系统中保持交易的完整性已被证明是一个相当大的障碍。我想确保所有相关操作要么成功,要么失败,避免任何不一致或数据差异。我正在使.

微服务分布式事务指南大全

1028 1 17K
本白皮书汇总了经典事务和分布式事务的概念。然后,我们解释了基于云的应用如何受到分布的影响。最后,我们介绍了基于补偿的事务,作为基于微服务的应用事务的可靠方法,即使是在云中。1、经典事务我们将简要概述事.

使用Kafka并行消费者提高Apache Kafka性能

580 1 3K

与其他现代大数据平台一样,Kafka 通过将数据分区到集群中的多个节点来实现无限的水平可扩展性。对于 Kafka,这意味着每个主题都有 1 个或多个分区。主题拥有的分区越多,并发性就越高,因此潜在的吞.

Temporal让Saga模式变得简单

628 9K

如果你想知道Saga模式是否适合你的场景,问问你自己:你的逻辑是否涉及多个步骤,其中一些步骤跨越机器、服务、分片或数据库,对于这些步骤,部分执行是不可取的?事实证明,这正是sagas的用武之地。也许你.

使用 db-scheduler 和 Spring 的事务性分阶段作业

917 2 7K

在 web 应用程序中,除了更新数据库之外,请求处理通常具有次要效果,例如更新另一个数据源或发送电子邮件。但是很难可靠地控制二次效应发生的时间和条件。在这篇博文中,我将向您展示如何使用db-sched.

现代分布式事务的两种形式 - a16z

812 1 5K

长期以来,事务数据库一直是应用程序设计中最关键的组成部分。为什么?因为稳定的数据库通常是混乱的分布式世界中正确性的最终实施点。没有他们,我们就会多付钱和少收钱。我们会失去试图从机场回家的乘客,我们会丢.

分布式数据库的内部工作原理

805 12K
由于我的新电动自行车在商店里而无法再次骑着它去上班(这次是因为电线问题导致自行车无法运行!),我开始考虑如何在我的自行车中创造一些冗余设置,这样我就不会因为简单的维护或供应链问题而一次被困在地铁上数周.

数据库分片解释

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

数据工程中的三种数据创建方式比较

599 1 6K

所有成功的数据驱动组织都有一个共同点;他们有一个高质量和高效的数据创建过程。数据创建通常是数据团队成功与失败之间的区别。数据创建的架构模式在数据创建中,有三种类型的架构模式:事件溯源EventSour.

CDC变更数据捕获实施模式

661 5K

在本文中,我想讨论实现 CDC 的几种不同方法,以及一些关键应用程序是什么以及 CDC 如何融入现代数据流架构的大局。有几种从数据库中提取变更事件的方法,每一种都有自己的优点和缺点。因此,让我们仔细看.

ActiveMQ 与 Kafka 的比较 | redhat

598

将 ActiveMQ 与 Kafka 进行比较类似于将关系数据库与 NoSQL 进行比较。ActiveMQ 不像 Kafka 那样适合云。但这并不意味着 ActiveMQ 不再有任何用例。仍然有大量业.

“事务”是任何大规模架构中最糟糕的耦合类型 - techleadjournal

1049 1

Neal Ford 是 ThoughtWorks 的总监兼软件架构师。在这一集中,我们讨论了关于软件架构的所有内容,涵盖了他最近的三本书:“软件架构基础”、“软件架构:硬部分”和“构建演化架构”。我们.

什么是分布式事务?

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

模块化单体比普通单体更复杂 - Oliver

1272 1
下图来自于Redhat的比较微服务的分布式事务模式:Y轴是可扩展性、可伸缩性X轴式一致性,从强一致性到最终一致性红色箭头线节点分别是:单体模块、两段事务、Saga编曲(无中央协调点)、Saga编舞(有.

使用事务发件箱进行可靠的事件调度

933 3K
在系统中使用事件很棒,但是您如何确定您是否可靠地调度了事件?事件的传输需要可靠地完成,同时保持整个系统的一致性,无论是最终的还是立即的。在典型的设置中,数据库用于存储信息,队列用于在进程和系统之间发送.

微服务架构中的SAGA模式是什么?

1367 1 2K
SAGA是一种必不可少的微服务模式,它解决了分布式系统中维护数据一致性的问题如果您正在从事 Java 微服务工作或准备需要微服务技能的 Java 开发人员面试,那么您必须准SAGA 模式。SAGA 是.

事件模式:使用幂等消费者(收件箱)检测重复消息

1194 3K
检测重复消息的唯一方法是在生产者端为事件生成一个唯一标识符。只有使用这些标识符,消费者才可能知道它第二次处理同一条消息,而不是具有相同属性的不同消息。为了防止两次处理同一条消息,常用的方法是将它们存储.

使用Flink实现Exactly-Once分布式事务 - Devora

1058 5K
分布式有状态流处理具有挑战性,尤其是在处理故障和恢复方面。在流处理中,最常被问到的问题之一是“我的流处理系统是否保证每条记录都被处理一次且仅一次,即使在处理过程中遇到一些故障?”通过“ exactly.

Python中的发件箱模式源码

935 11K

微服务/模块之间最常用的通信方式之一是通过事件进行异步通信。实施可靠的消息传递有时可能具有挑战性。在今天的文章中,我将向您介绍如何实现发件箱模式以保证事件的传递和可靠的消息传递。发件箱模式(事务性发件.

微服务中的分布式事务:使用 Temporal 实现 Saga

1286 7K
微服务架构的一个重要设计原则是每个服务数据库模式。这种模式帮助我们保持服务松散耦合,以便它们可以独立开发、部署和扩展。换句话说,域数据被封装在微服务中,如果其他服务需要数据,则它们通过调用 API 来.

ulid/spec: 全局唯一标识符ULID是传统UUID的替代

1529 1

ULID 是 UUID 的替代品。它是可排序的并且基于时间戳+随机种子。有多种语言的实现可用。Shopify从UUID切换到ULID,INSERT提升50%,以下是他们经验:分布式系统使用不可靠的网络.

将数据库更改复制到消息队列很棘手 (evanjones.ca)

1153 2K

假设我们有一个将其状态存储在数据库中的程序,我们希望其他程序在发生变化时做一些事情。例如,我们可能想在银行余额下降到某个阈值以下时发送电子邮件通知。这是应用程序使用Kafka等消息队列的一个非常常见的.

适合用于数据库主键的最佳UUID工具库 - Vlad Mihalcea

1791 1 7K

在本文中,我们将了解哪种 UUID(通用唯一标识符)类型最适合具有主键约束的数据库列。虽然标准的 128 位随机 UUID 是一个非常受欢迎的选择,但您会发现这非常适合数据库主键列。通用唯一标识符 (.

go-coffeeshop: 使用Golang构建的实用事件驱动微服务演示

1608 1
使用Golang构建的实用事件驱动微服务演示,用于部署的Nomad、Consul Connect、Vault和Terraform其他版本可在以下位置找到: 使用微服务方法的.NET CoffeeSho.

不要使用UUID,它不安全!

3474 2 2K

如果您需要一个不可猜测的随机字符串(例如,用于会话 cookie 或访问令牌),可能很想获取一个随机 UUID,如下所示:88cf3e49-e28e-4c0e-b95f-6a68a785a89d这是一.

debezium官方分布式事务Saga案例源码

1410
此示例演示如何使用变更数据捕获以安全可靠的方式实现Saga 模式,以实现跨多个微服务的分布式事务。基于发件箱模式,此实现避免了对服务数据库和 Apache Kafka 的不安全双重写入,方法是通过原始.

Postgres 序列问题如何影响您的消息传递保证 ?

1479 6K
让我们更深入地讨论在 Postgres 之上潜在的基于轮询的实现。假设我们将使用的表结构:CREATE TABLE publications(   -- the autoincremented pos.