分布式事务架构
使用事务发件箱进行可靠的事件调度
23-02-05
157
3k

在系统中使用事件很棒,但是您如何确定您是否可靠地调度了事件?事件的传输需要可靠地完成,同时保持整个系统的一致性,无论是最终的还是立即的。在典型的设置中,数据库用于存储信息,队列用于在进程和系统之间发... 详细
微服务架构中的SAGA模式是什么?
23-02-01
340
1
2k

SAGA是一种必不可少的 微服务 模式,它解决了 分布式系统 中维护数据一致性的问题 如果您正在从事 Java 微服务工作或准备需要微服务技能的 Java 开发人员面试,那么您必须准SAG... 详细
事件模式:使用幂等消费者(收件箱)检测重复消息
23-01-22
580
3k

检测重复消息的唯一方法是在生产者端为事件生成一个唯一标识符。只有使用这些标识符,消费者才可能知道它第二次处理同一条消息,而不是具有相同属性的不同消息。 为了防止两次处理同一条消息,常用的方法是将它... 详细
使用Flink实现Exactly-Once分布式事务 - Devora
23-01-14
591
5k

分布式有状态流处理具有挑战性,尤其是在处理故障和恢复方面。在流处理中,最常被问到的问题之一是“我的流处理系统是否保证每条记录都被处理一次且仅一次,即使在处理过程中遇到一些故障?” 通过“ exac... 详细
Python中的发件箱模式源码
23-01-12
592
10k

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

微服务 架构 的一个重要设计原则是每个服务数据库模式。这种模式帮助我们保持服务松散耦合,以便它们可以独立开发、部署和扩展。换句话说,域数据被封装在 微服务 中,如果其他服务需要数据,则它们通... 详细
ulid/spec: 全局唯一标识符ULID是传统UUID的替代
22-12-30
728
1
1k

ULID 是 UUID 的替代品。它是可排序的并且基于时间戳+随机种子。有多种语言的实现可用。 Shopify从UUID切换到ULID,INSERT提升50%,以下是他们经验: 分布式系统使用不... 详细
将数据库更改复制到消息队列很棘手 (evanjones.ca)
22-12-14
777
2k

假设我们有一个将其状态存储在数据库中的程序,我们希望其他程序在发生变化时做一些事情。例如,我们可能想在银行余额下降到某个阈值以下时发送电子邮件通知。这是应用程序使用Kafka等消息队列的一个非常常见... 详细
适合用于数据库主键的最佳UUID工具库 - Vlad Mihalcea
22-12-11
1036
1
7k

在本文中,我们将了解哪种 UUID(通用唯一标识符)类型最适合具有主键约束的数据库列。 虽然标准的 128 位随机 UUID 是一个非常受欢迎的选择,但您会发现这非常适合数据库主键列。 通用唯一标... 详细
go-coffeeshop: 使用Golang构建的实用事件驱动微服务演示
22-12-02
1017
1
2k
使用Golang构建的实用事件驱动 微服务 演示,用于部署的Nomad、Consul Connect、Vault和Terraform 其他版本可在以下位置找到:
使用微服务方法的.NE... 详细
不要使用UUID,它不安全!
22-11-22
1509
2
2k

如果您需要一个不可猜测的随机字符串(例如,用于会话 cookie 或访问令牌),可能很想获取一个 Version _4_(random)" class='body_href' >随机 UUID... 详细
Postgres 序列问题如何影响您的消息传递保证 ?
22-11-01
1122
6k

让我们更深入地讨论在 Postgres 之上潜在的基于轮询的实现。 假设我们将使用的表结构: CREATE TABLE publications(
-- the autoinc... 详细
使用Spring Boot + Kafka实现分布式事务 - Piotr
22-10-30
1205
1
21k

在本文中,您将学习如何在 Spring Boot 应用程序中将 Kafka 事务与 Spring Kafka 项目一起使用。为了运行 Kafka 集群,我们将使用 Upstash 。 如果您想自己尝... 详细