• 并发数据库更新是指多个用户或进程试图同时或快速连续地修改同一数据库记录或数据的情况。在多用户或多线程环境中,当多个实体(例如用户或应用程序)同时访问和修改同一数据时,可能会发生并发更新。并发数据库更新可能导致各种问题和挑战,包括: [list=1] [*]数据不一致:如果管理不当,并发更新可能会导致
  • 缓存是应用程序开发中的一项关键技术,可以提高性能并减轻数据库和其他资源的压力。在 Spring 框架中,利用事务感知缓存可以保障数据一致性,同时最大化缓存优势。让我们深入了解 Spring 事务感知缓存的细微差别。 [b]了解事务感知缓存[/b] 事务感知缓存是软件开发中采用的一项复杂技术,用于增强
  • 分布式事务(也称为 XA 事务)的出现是为了解决分布式环境中跨多个数据库或系统协调事务的复杂性。想象一下,您正在指挥一个管弦乐队,其中每个音乐家代表不同的数据库或服务。就像确保音乐的和谐需要精确的协调一样,维护分布式系统之间的事务完整性也需要仔细的编排。 这就是两阶段提交 (2PC)(XA 事务的一 icon
  • 在今天的文章中,我们将学习 Spring Boot @Transactional 中使用的最重要注释之一的基础知识。 理解springboot中使用@Transactional进行事务管理: [list] [*]事务注释用于管理 spring-boot 应用程序中的事务。 [*]该注释可以在类级别或 icon
  • 最近我闲着没事儿,把Postgres数据库30年来怎么管理内存缓冲区的"锁"设计翻了个底朝天。这事儿估计只有骨灰级Postgres技术宅才会感兴趣。不过既然研究了,咱就唠唠吧! 先说说Postgres缓冲区管理器是干啥的?简单来说,Postgres把硬盘数据分成8KB大小的"数据块"。为了提速,它会 icon
  • 百万行Java代码里90%的崩溃恢复逻辑,最终都败给了一个没考虑到的Kafka超时,这难道不荒唐吗? 关系数据库用预写日志保证了数据不丢,现在Temporal.io用同样的套路保证你的代码跑完。这东西叫持久化执行,就是把程序运行状态像存钱一样存下来,服务器炸了都不怕。Java开发者们,你们的重试循环 icon
  • 本文探讨了 CAP 定理。理解 CAP 对于设计分布式系统至关重要,我们将深入研究每个属性的含义。 [b]什么是分布式系统?[/b] 分布式系统将计算和数据分布在网络内的多个互连节点上。这可能涉及卸载处理能力或在地理上分散数据以加快交付速度。与将数据存储在单个位置的集中式系统不同,分布式系统将数据分 icon
  • 这里有一个大家都懂的生活小窍门:排队时,一条队比两条队效率更高。比如超市结账时,所有人排成一条长队,哪个收银台空出来就轮到下一个人去结账。这样做有两个好处:第一,不会出现收银员闲着却有人傻等的状况;第二,万一前面遇到个磨蹭的顾客(比如 icon
  • 快得吓人的数据库写入,可能在你点下确认键那一刻就已经弄丢了! 数据库写入速度的秘密:你以为是硬件牛,其实是把风险推给了你。那些每秒上万次的写入,可能根本没存稳。 你有没有遇到过这种场景:程序员小哥一脸兴奋地展示新数据库,写入 icon
  • 这篇博文讨论了 PostgreSQL 中多版本并发控制的基础知识。然后介绍快照以及它们如何控制元组的可见性。还讨论了与表扫描 API 的集成。 与许多关系数据库管理系统一样,PostgreSQL 使用多版本并发控制(MVCC)来支持并行运行的事务,并协调对图元的并行访问。 快照用于确定图元的哪个版本 icon
  • Spring Boot事务中的外部IO调用如何拖垮整个API!一个@Transactional注解引发的数据库连接池灾难 别把数据库连接当电话线用——一个事务里调HTTP,压测直接干翻我的API 在Spring Boot应用中将HTTP调用放在@Transactional事务内会导致数据库连接池耗尽 icon
  • 8 条@Transactional 规则,我在调试了太多生产环境 bug 后遵循这些规则。 使用 Spring Boot 已经超过 10 年了,在代码审查和生产环境中仍然经常看到同样的事务性 bug。所以我想分享一下我现在遵循的规则。 [list=1] [*]尽量缩短事务持续时间,仅进行数据库操作。 icon
  • 把工作流状态和业务数据放在同一个数据库里,听着像把洗衣粉和洗衣液倒一块儿,其实这招能用数据库事务搞定分布式系统里最头疼的重复执行和数据不一致问题,省掉一堆复杂代码和额外维护成本。 ### 工作流状态和业务数据为啥非要挤在一个数据库里 大家平常做系统设计,脑子里第一反应就是拆分。数据库分好几个,缓存来 icon
  • 这篇文章详细分析了在Spring Boot或Spring Data JPA中默认使用的RESOURCE_LOCAL事务类型是如何工作的。 文章首先介绍了JPA事务类型的背景,提到JPA 1.0规范发布时有两种事务类型:JTA(Java Transaction API) icon
  • JPA 中的事务机制是一个强大的工具,它通过提交所有更改或在发生异常时回滚它们来确保原子性和数据完整性。然而,在某些情况下,遇到异常后需要继续事务而不回滚数据更改。 在本文中,我们将深入研究出现这种情况的各种用例。此外,我们将探索此类情况的潜在解决方案。 确定问题 交易中可能出现异常的情况主要有两种 icon
  • Rama是一个新的编程平台, Rama 的突破最重要的是,它首次出现了用于构建软件应用程序的内聚模型,无论规模如何。 [b]ACID事务[/b] ACID原子性、一致性、隔离性和持久性是数据库系统的关键特征。 Ra icon
  • Spring Data JPA 通过在底层持久层上提供更高级别的抽象来简化 Java 应用程序中的数据访问。但是,在处理事务时,开发人员可能会遇到意外行为,例如 UnexpectedRollbackException。在这篇博文中,我们将深入研究此异常,了解其原因、影响以及如何在 Spring Da icon
  • 最近,我必须使用#六边形架构模式 在 Java 中实现一个新的 CRUD 服务。六边形架构模式是一种强调系统中关注点分离和组件独立性的软件模式。遵循此模式的服务 icon