跳至主要內容
分布式事务

分布式事务是在分布式系统下绕不开的一个话题,它的概念是指:在分布式系统下,一个业务跨多个服务或数据源,每个服务都是一个分支事务,要保证多个分支事务最终一致性,即为分布式事务。本篇便是来介绍常见的几种分布式事务实现方案。

理论规范

先来了解下分布式领域的一些定理。

CAP 定理

分布式系统的三个指标:在分布式系统中,最多只能实现其中的两点,由于网络硬件肯定会出现延迟丢包等问题,所以分区容错性是必须实现的,因此只能在一致性和可用性之间进行权衡。

  • 一致性(Consistency):用户访问分布式系统中的任意节点,得到的数据都是一致的
  • 可用性(Availability):分布式系统中任意健康节点在任何时候都可以读写
  • 分区容错性(Partition tolerance):在网络故障、某些节点不能通信的时候系统仍能继续工作
    • 分区(Partition):因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区
    • 容错(Tolerance):在出现分区情况时,系统也要持续对外提供服务

YUDI-Corgi原创Spring分布式事务大约 13 分钟
WebSocket 集成(二)

本篇介绍 Spring 集成 WebSocket 的第二种方式:使用 Spring 本身的 WebSocket 模块,先从基础开始。

依赖

使用的 Spring Boot 版本为3.2.2,添加依赖如下:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

YUDI-Corgi原创SpringSpring BootWebSocket大约 6 分钟
WebSocket 集成(一)

介绍

WebSocket 协议 是基于 TCP 协议的全双工通信协议,是通过单个 TCP 连接在客户端和服务器之间建立全双工、双向通信通道,可让客户端与服务端建立持久连接,并实时互传数据。它与 HTTP 同为应用层协议,但相比于 HTTP 的请求 - 响应模型,WebSocket 则提供了实时、低延迟的数据传输能力和长连接功能,旨在解决 HTTP 协议在实时通信方面的局限性,如请求 - 响应模式的单向性以及频繁的连接、断开开销。WebSocket 的特性,使得其在即时通讯、游戏同步、IOT 设备实时监控等应用场景大放异彩,已成为现代 Web 应用中常用的通讯协议之一。


YUDI-Corgi原创SpringSpring BootWebSocket大约 10 分钟
Spring 事务同步

前言

事务功能在日常开发中使用并不少,本质上是为了保证一次业务请求处理过程中涉及多次 DB 数据操作时的原子性。而本篇主要讲述的事务功能是实现在事务执行的某个阶段去做某些事,即事务同步。在常规的 Web 应用中,大多是直接使用@Transactional注解方法来完成事务操作,但也有一些特殊情况,需要在事务提交前、提交后等情况下执行某些操作,如资源准备、清理、自定义操作等。

事务同步接口

事务同步回调接口是TransactionSynchronization,其抽象实现TransactionSynchronizationAdapter源码如下:


YUDI-Corgi原创SpringSpringTransaction大约 11 分钟