Seata-php 半年规划

seata(一) 分布式事务解决方案汇总 概述 分布式事务是老生长谈的话题了,过去也一直没有很好的解决办法,没有很方便使用的架构。不过现在阿里开源了seata, 笔者正在学习中,顺便记录一下笔记。 本文先来梳理一下目前流行的分布式事务的各种解决方案,以及他们的对比分析。 什么是分布式事务 事务: 由一组操作构成的可靠的独立的工作单元,事务具备ACID的特性,即原子性、一致性、隔离性和持久性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。 一致性(consistency)。事务必须是使 阅读详情

3043a258a16ed545370427feeeeb6b7e.gif

文|

赵新(花名:于雨 )

蚂蚁集团 Seata 项目开源负责人

开放原子开源基金会代码贡献之星

郭成(花名:星北 )

Seata-php 项目共同发起人

蚂蚁集团技术专家

刘岳健

Seata-php 项目共同发起人、Hyperf 开发组成员

广东快客电子商务有限公司高级后端工程师

本文 5894 字 阅读 12 分钟

|导语|

通俗地讲,seata-php 是 Seata  的 PHP 语言实现,它实现了 Java 和 PHP 之间的互通,让 PHPer 也能使用 seata-php 来实现分布式事务。

Seata 是一个非常成熟的分布式事务框架,在 Java 领域是事实上的分布式事务技术标准平台。Seata 目前正在构建其多语言体系[1],整个体系包含了目前常用的五大类语言:Java、Go、Python、JS 和 PHP。目前的态势是后四种语言都依据 Seata Java 版本构建起对应语言的实现。

除了追求 Seata 多语言体系过程中因为开源价值要求构建  Seata 的 PHP 版本这个原因外,作为构建起 Web 1.0 时代技术基础 LAMP 架构中的要角,PHP 语言在电商和金融交易场景下依然被广泛使用。而这些场景对数据一致性要求非常强烈,这是构建 seata-php 最大的诱因,也是其技术价值所在。

PART. 1

Seata 架构与多语言体系

2df638c25e0416dd27874ab444c97095.png

图片来自 Seata 官网

Seata 总体架构由如下角色构成:

- 事务协调器 Transaction Coordinator

简称 TC,维护全局事务和分支事务的状态,驱动全局事务提交或者回滚。

- 事务管理器 Transaction Manager

简称 TM,定义全局事务的范围,提交或者回滚全局事务。

- 资源管理器 Resource Manager

简称 RM,和分支事务在同一个应用,进行分支事务的注册,报告分支事务的状态,驱动分支事务的提交或者回滚。

从 C/S 通信架构角度来看,TC 是服务端,TM 和 RM 是客户端。TC 与 TM 以及各个 RM 之间使用 Netty 框架进行长链接通信。具体而言,Seata Java 版本的通信协议是在四层 TCP 协议之上又定义了一套私有的二进制双向通信协议,通信框架使用了 Netty。其他四种语言只要依据 Seata 的通信协议标准实现其通信功能,即可在多语言生态体系内任何语言之间进行通信和服务调用。

三个角色中,TM 和 RM 以 SDK API 形式供上层 APP 调用,而 TC 是独立进程部署,使用任何语言实现都可以。据说懒惰是程序员的第一美德,在 Seata Java 已经实现了 Java 版本的 TC 的情况下,多语言体系内其他语言就没必要再做重复工作,只需要构建其对应语言的 TM 和 RM 的 SDK API 包,与 Seata Java TC 通信即可。

PART. 2

Seata 与 PHP 技术

分布式事务技术是微服务技术体系的一环,构建 Seata PHP 首先需要选择其微服务技术平台,seata-php 目前使用的微服务框架是 Hyperf。

PHP 在业界以入门门槛低著称,目前常用的微服务框架有 Laravel 以及在其上构建的 Lumen。Laravel 框架的最大优点就是其生态丰富,各种组件应有尽有,如果 Laravel 可以和 Spring 框架类比,Lumen 就是 Spring Boot。但其缺点是性能堪忧,例如在普通的 8C 机器上,空跑一个只运行 echo 逻辑的 HTTP 服务,其吞吐量仅有 1K QPS。

Hyperf 框架是近年内出现的由国人基于 Swoole 开发的一个微服务框架,特点如下:

1. 类似于 Nginx,Hyperf 以多进程形式常驻内存,每个进程内都有一个弹性线程池。正常情况下 Hyperf 收到调用请求后,可以保证 1ms 之内分配服务线程,而 Lumen 的响应时间常在 10ms 左右;

2. 因为 Hyperf 服务常驻内存的特点,其稳定性好,资源利用率当然比以 CGI 机制运行的 Lumen 低很多;

3. Hyperf 的对请求的处理过程借鉴了 Go 语言机制,其 runtime 层面以异步方式执行上层的用户同步调用,相比 Lumen 其吞吐率高而延迟低。例如在同样环境下使用 Hyperf 实现同样的 echo HTTP 服务,可以轻松达到 60K QPS;

除了 Hyperf 自身稳定性与高性能外,依赖于 Hyperf 服务进程常驻内存的特点,TC 可以很方便的对seata-php 的 RM 发起二阶段事务处理,即作为 Server 的 Java TC 对作为 Client 的 PHP 版本的 RM 发起 RPC 回调。如果使用 Lumen 作为 seata-php 的微服务框架,几乎不可能实现这个技术点。

PART. 3

快速入门 seata-php

基于 Hyperf 微服务框架,seata-php 已经实现了 AT 事务模式,并给出了测试用例。本章节的目的是基于现有实现,让对 seata-php 这个项目感兴趣的同学能够快速入门 seata-php。

3.1--搭建 PHP 开发环境

使用 Hyperf/Box 这个工具能够快速创建开发环境,并且能够与其他自建开发工具链隔离,避免污染日常的开发环境。

3.1.1 下载 Hyperf/Box

# Mac
wget https://github.com/hyperf/box/releases/download/v0.0.3/box_php8.1_x86_64_macos -O box
# Linux x86_64
wget https://github.com/hyperf/box/releases/download/v0.0.3/box_php8.1_x86_64_linux -O box
# Linux aarch64
wget https://github.com/hyperf/box/releases/download/v0.0.3/box_php8.1_aarch64_linux -O box


sudo mv ./box /usr/local/bin/box
sudo chmod +x /usr/local/bin/box


# 在 https://github.com/settings/tokens/new 创建 token 后,配置到 box 中
box config set github.access-token <Your Token>

注意:

- 如果你是 Mac 用户首次使用的话,需要在“系统偏好设置”-->“安全性与隐私”中给 Box 工具进行授权;

- 已经测试过,X86 的 Box,可以在 M1 版本的 Mac 上使用;

- 使用 Box 时,创建 GitHub access token 权限需要 repo、workflow。

3.1.2 配置 PHP 环境

当 Box 下载好后,继续下载 PHP 8.0 版本

# 下载 php8.0
box get php@8.0
# 将 box 设置为 php8.0 版本
box config set-php-version 8.0

351fdffb65ba783168fcfad6c203f449.png

3.1.3 下载 composer

# 下载 composer
box get composer

ae3972695439e31c130cb986bf303e52.png

3.2--运行 seata-php

环境搭建完毕过后,找一个目录来存放 seata-php 项目的代码。

# 找个地方创建一个目录
mkdir ./seata


# 进入到目录内
cd ./seata


# 下载 seata 骨架包
git clone https://github.com/PandaLIU-1111/seata-skeleton


# 下载 seata/seata-php 组件包
git clone git@github.com:seata/seata-php.git


# 进入到 seata骨架包内
cd seata-skeleton


# 执行 composer 更新项目内的组件包
composer update -o


# 查看是否与 seata/seata-php 建立软连接
ls -al vendor/hyperf/ | grep seata


# 查看命令执行后是否有以下内容
...
seata -> ../../../seata-php/  // 与 seata/seata-php 包建立软连接
...


# 启动项目
box php bin/hyperf.php start

a9c2f8bcd1efaac9629a0a4c4c192dc6.png

至此,即可看到 seata-php 运行成功,在命令行中可以看到 seata-php 客户端与 Seata Java 服务端 TC 的交互报文。

3.3--项目代码风格

Seata-php 遵循 PSR-1 代码规范[2]。

社区提供了一个类似于 Go 语言 gofmt 一样的代码格式化工具——composer cs-fix,具体使用方式是:

# 格式化某个文件
composer cs-fix ${FileName}
# 格式化某个目录
composer cs-fix ${DirName}

3.4--测试用例

目前,seata-php 仅提供了单测用例,放置在项目 tests 目录中,可直接通过 composer test 命令执行这些单测用例。我们近期就会把这些单测用例配置在  GitHub action 上,用于测试每个提交的 PR。

下一步,我们会像 seata-go 一样补充集成测试用例,并配置在 GitHub action 上用于自动测试项目的每个 PR。

PART. 4

下半年规划

Seata-php 目前已有的工作仅仅是迈出了下半年长征的第一步,尚未达到生产可用的状态。下半年的整体目标是:

1.【事务模式】对齐将于 9 月份发布的 Seata Java v1.6.0 的 TCC、AT、SATA 和 XA 模式;

2.【测试用例】单测覆盖率达 70% 以上,并实现两种模式下的 Seata Java 中已有的集成测试用例的 PHP 版本;

3.【代码 samples】实现两种模式下的 Seata Java 中已有的 samples 示例的 PHP 版本;

4.【文档建设】构建 API 接口级别的详细说明文档;

5.【生产案例】实际生产用户 3 家以上;

6.【社区建设】培养 Seata Committer 5 人以上。

上述目标可以理解为 seata-php 社区的 KPI。为达成目的,有可分为“三步走” 的如下执行 plan。

4.1--发布一个可用版本

这是第一个阶段。我们计划在国庆节前后发布第一个 GA 版本,详细的技术点如下:

1. 实现 TM 与 RM

作为分布式事务的发起方,TM 在与下游的微服务应用在通信时,能够在 HTTP 协议与 gRPC 协议中,传递事务上下文,下游的服务也可以随时加入到事务中。

2. 实现分布式锁 API

用于避免业务数据在一阶段与二阶段之间,由于并发被修改,导致二阶段提交、回滚失效。

3. 实现 TCC 与 AT 模式

完全实现 TCC 模式。而 AT 模式依赖于具体的 DB 类型和 DB 版本,我们把 DB 限定为 MySQL v5.7,在此之上支持最基本的 INSERT 与 UPDATE 语句,基本可以完成大部分的实际应用场景覆盖。

4. 支持注册中心

支持注册中心的目的,是方便 TM 和 RM 对 TC 进行微服务发现。将会支持 File 与 Nacos 两种服务发现方式。

优先支持 File 服务发现方式。其好处是,在 K8s 环境下,可以通过环境变量或者是挂载 configmap,实现动态配置,不依赖人力变更。

其次支持 Nacos 作为注册中心的服务发现方式。目前,国内的阿里云、腾讯云、华为云等主流云厂商都支持 Nacos 注册中心,可以方便广大用户进行服务联通。

5. 其他

如自动化的单元测试,集成测试和项目的 samples。

社区已经将第一阶段涉及到的所有任务都作为 task 发布在 seata-php issue 上,可以方便的查看任务负责人,并及时跟踪项目进度(直接查看当前进度)。

4.2--技术能力全面对齐

这是半年目标的第二阶段。这个阶段产出的版本,将会是一个比较完善的版本,能够覆盖绝大部分的业务场景,降低开发者在使用 seata-php 的门槛与成本。关键技术点如下:

1. 实现 XA 与 SAGA 模式

除了补齐这两个模式外,还将继续完善 AT 模式支持的 SQL ,能够做到支持大部分的 SQL 语句。

2. 支持配置中心

支持配置中心的目的,是方便拉取事务相关的配置。初步计划支持 File、Nacos、Apollo 三种配置方式。

3. 支持 gRPC

计划于 9 月份发布的 Seata Java v1.6,将支持 gRPC 通信方式。Seata-php 在第二阶段也将支持这一 RPC 调动方式进行事务传播。

4. 其他数据库

首先支持更多的 MySQL 版本,如 v8.0。并支持 PostgreSQL、OceanBase、Redis 等更多类型的 DB。

5. 事务异常处理

提升分布式事务防悬挂的能力,自动处理请求幂等、空提交、空回滚、资源悬挂等事务异常逻辑。

第二阶段的时间节点的 deadline 大概是在本年 11 月底左右。

4.3--社区建设

前两个步骤,主要集中在 seata-php 自身的技术能力建设上。到此,seata-php 在技术上可以认为已经成熟。

这两个步骤的推进,首先依赖于社区自身的健康发展,毕竟开源项目的事情需要社区同学来推进。当下社区由于雨同学负责发展壮大,项目总体由星北同学来负责推进实施,目前已有代码 Contributor 4 人。

当然,我们欢迎更多的同学参与到 seata-php 的代码建设中来。提交 issue 和 PR 时,建议尽可能详尽的描述相关细节。比如:

提交 bug issue 时

- 标题可以写:bugfix:NotFoundClass Redis with PHP version is 7.2

- 内容可以提交 bug 的详细情况、发生现象的详细情况、对应的堆栈信息、预期的情况、以及当前的环境情况、发生的事、修复意见、以及补充的信息、当前的环境情况等信息。

提交 PR 时

- 标题可以写:Feature: AT mode need to support pgsql

- 内容可以写明:这个 Feature 的意义,以及期望的用法,还包括其他相关信息等。

这一步骤与前两个步骤相生相伴,同步进行。

PART. 5

总结

Seata-php 有 Seata Java 这个标杆在,初期以推进代码进度为主。

作为一个开源项目,seata-php 的开源价值当然是在用户的生产环境使用起来,而生产用户也是社区建设的一部分。目前已有两家用户愿意在其开发测试环境对 seata-php 进行验证,帮助提升项目的稳定性、易用性和代码质量。

为保持项目和社区的健康可持续发展,开源项目的贡献者,不仅包含 coding 的代码贡献者,还应当包括进行文档贡献、产品宣传和品牌推广等方面的贡献者。我们将组织社区热心参与者在各大技术论坛发表博客,在语音、视频网站和技术大会上进行技术干货以及生产案例的推广宣传。欢迎对这些工作感兴趣的朋友加入社区钉钉群 44788115,与我们联系沟通。

【参考文档】

1.《Seata 多语言体系建设》:https://mp.weixin.qq.com/s/UwzscqfuCYtsSdWYj-t-uQ

2.《PHP PSR-1 代码规范》:https://www.php-fig.org/psr/psr-1/

   本周推荐阅读  

e26d0b780abf0cef69d068526e31f976.png

Seata 在蚂蚁国际银行业务的落地实践

a21df118d66f4bc1c69839706256e0ef.png

Seata 多语言体系建设

f9da562a8c31345f7e17a6193f800e86.png

深入 HTTP/3(2)|不那么 Boring 的 SSL

54561ca32c13ce331720c5a7572fc0f5.png

Go 原生插件使用问题全解析

aa53cdad9ee2c365f824f30ec46bbacc.jpeg

分布式事务终极方案:Seata在PHP微服务架构的落地实践.pdf 文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 PHP——Web开发的可靠伙伴!从快速搭建动态网站到处理复杂业务逻辑,它简洁灵活又强大。全球超80%服务器运行,海量框架与库助力开发。无论新手入门还是老兵深耕,PHP都能高效交付价值,持续赋能互联网创新! 立即下载

相关推荐

AI辅助专利撰写实战:30分钟高效产出发明专利初稿

在技术创新的浪潮中,专利撰写常常是开发者将创意转化为知识产权保护壁垒的关键一步,但这个过程往往耗时费力,需要兼顾技术深度与法律文书规范。近期,借助AI辅助工具来提升专利撰写效率已成为一个热门探索方向。本文将围绕如何利用AI工具,在30分钟内高效完成一篇具备授权潜力的发明专利初稿,进行一场从0到1的实战演练。无论你是独立开发者、初创团队的技术负责人,还是希望保护自己研究成果的学生,这套方法都能帮助你快速梳理技术方案,形成结构严谨、逻辑清晰的专利申请文档。 1. 背景与核心概念:AI辅助专利撰写的价值与边界 在

weixin_34253126的博客 493

Seata:连接数据与应用

本文主要介绍分布式事务从内部到商业化和开源的演进历程,Seata 社区当前进展和未来规划。

阿里巴巴云原生的博客 737

大模型面试题52:LLM如果在训练过程中loss值出现spike应该怎么办?

小白急救:停更→回滚→降LR→裁剪梯度,先保住训练不崩溃;进阶排查:查数据→查优化器→查硬件,找到spike的根因并解决;深层预防:预处理保守配置+训练中实时监控,从源头规避spike。先止损,再溯源,最后预防。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1169

十六、Seata

文章目录一、介绍二、使用1. 下载2. 配置文件及数据库3. 参数配置示例配置service端client端注意点:三、测试测试一测试二 一、介绍 参考官网介绍:seata是什么 二、使用 1. 下载 下载地址 2. 配置文件及数据库 官方github 3. 参数配置 参考官网介绍seata参数配置 示例配置 service端 file.conf文件修改 把事务存储日志修改为在数据库中存储 registry.conf 修改默认配置 把seata注册到nacos服务注册中心中 注意分组可以不修改采用

夏天 447

VMware17安装教程(附安装包)VMware17小白详细一键安装教程

VMware 17.5 是一款强大的虚拟机软件。本安装教程将为您详细介绍VMware17安装教程其下载、安装步骤及验证方法,助您轻松完成安装,开启虚拟化体验。

2501_91538706的博客 2万+

健康保险费用预测:可解释机器学习在精算建模中的实战落地

健康保险费用预测是医疗AI与保险科技交叉领域的核心任务,本质是基于临床变量与社会因素对个体医疗支出进行风险量化。其技术原理需兼顾统计建模能力与监管可解释性,XGBoost+SHAP组合因支持特征归因、边际效应分析和临床可干预推演,成为保险精算场景的主流选择。该技术显著提升保费定价精度、降低偿付风险,并支撑DRG费用预警、团险核保辅助及再保险尾部风险评估等关键应用。本文聚焦真实产线中的时间序列验证、临床分层特征工程与监管红线指标(如Bias@90th、Calibration Slope),深入解析如何让模型不

weixin_33702545的博客 306

【分布式系统】之 分布式事务解决方案 Seata

分布式事务,分开来讲就是分布式和事务。分布式:是一种抽象规范,即分别部署在不同的服务器节点的模式不同功能的模块的分开部署相同功能的模块基于高性能高并发高可用的集群部署事务:是一组原子性的执行过程,该过程要么全部执行成功,要么全部执行失败,不存在中间状态。

编程探索与数字构建 | Python与Java之旅 1344

从零构建:openEuler WSL下的ARM交叉编译工具链自动化部署方案

本文详细介绍了在openEuler WSL环境下使用Ansible自动化部署ARM交叉编译工具链的方案。通过编写Ansible角色和Playbook,实现从基础环境配置到工具链安装、环境变量设置的一键部署,大幅提升嵌入式开发效率。方案支持多种ARM架构,并扩展了QEMU仿真、VS Code远程开发等实用功能,是嵌入式开发者的高效解决方案。

h3i4j的博客 382

Seata实战-分布式事务简介及demo上手

文章目录Seata简介分布式事务产生背景数据库的水平分割微服务化分布式事务理论基础两阶段提交(2pc)TCCSeata解决方案第一阶段第二阶段Demo上手-Dubbo集成Seata配置修改启动测试 Seata简介 Seata(Simple Extensible Autonomous Transaction Architecture) 是 阿里巴巴开源的分布式事务中间件,以高效并且对业务 0 侵入的...

hosaos的博客 12万+

c语言实现求一个矩阵特征值和特征向量

前言 求矩阵的特征值,主要是用的QR分解,在我的有一次博客里,我已经详细地给出了计算的过程,大家有兴趣可以去看下,经过几天的钻研,终于完成了整个的eig算法。下面我将把我的整个代码附上,有不懂的可以问我,欢迎一起讨论学习! 这是对上一次的修改版,上一次写的程序是在C++编译环境下编译的,所以放在c里面编译有些会出错。 最后,如果有不对的地方希望大...

qq_36417014的博客 2万+

微信小程序 - 详解苹果ios手机请求不到数据访问不了接口,但安卓却可以正常访问。wx.request苹果手机IOS请求失败、安卓可以请求成功(微信小程序上线后苹果手机不能访问接口,网络请求失败排查)

微信小程序上线后,苹果手机请求不到数据,安卓可以,微信小程序,安卓可以调接口,苹果调不了的解决方案,微信小程序:IOS访问不了接口,安卓可以正常访问,微信小程序ios版本连接不了服务器,小程序Android可以请求,ios请求失败wx.request,成功上线的小程序,安卓机可以正常访问使用,苹果微信小程序不执行请求,苹果系统无法加载数据,微信小程序 iOS 网络失败,微信小程序接口请求在ios端报错,苹果手机真机调试微信小程序出现网络请求失败,微信小程序 安卓正常 ios调接口显示网络请求失败,微信小程序

🏆 前端领域优质创作者 4361

新能源车企架构师面试全流程复盘:从技术到薪资的实战经验

架构师岗位的核心不仅是技术深度,更在于解决复杂业务场景的能力。车联网高并发环境下,消息队列、分布式事务与JVM底层原理成为关键考察点。从系统设计到技术选型,车企面试逐步从基础原理追问走向实战方案推演,强调候选人对业务量级的预判、异常处理及成本优化的思考。文章结合真实面试经历,解析架构师如何将技术概念转化为工程实践,并覆盖技术总监面、团队协作、薪资谈判等环节,为准备进入新能源车企的技术人员提供完整参考路径。

weixin_30940783的博客 324

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

985小水博的摸鱼日常 3090

程序员职业迷茫的本质与可执行破局路径

程序员职业迷茫并非能力不足或兴趣缺失,而是从‘考试驱动’向‘价值驱动’转型过程中发生的认知操作系统升级现象。其底层原理在于确定性解题思维与不确定性业务建模之间的范式断层,叠加技术学习与真实工程场景的温差效应。这种状态具有显著的职业生理学特征,如深夜持续编码、提交信息中隐含情绪化表达等,实为大脑处理高信息熵时的正常应激反应。它具备明确的技术价值:倒逼开发者构建‘能力-兴趣-价值’三角坐标系,启动最小可行性职业体验(MVCE),并建立抗干扰学习与职业韧性增强回路。典型应用场景包括应届生技术选型焦虑、实习生需求理

clugcpne10995的博客 444

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

php 分布式事务 中间件,【SpringCloud】Spring Cloud Alibaba 之 Seata 分布式事务中间件(三十五)...

什么是分布式事务问题?单体应用单体应用中,一个业务操作需要调用三个模块完成,此时数据的一致性由本地事务来保证。微服务应用随着业务需求的变化,单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题没法保证。小结在微服务架构中由于全局数据一致性没法保证产生的问题就是分...

weixin_29015899的博客 238

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【Seata】之 初识(四种模式)

文章目录一、简介二、四种模式(1)AT1)过程2)优点(2)TCC1)过程2)三种异常处理3)优点(3)Sage1)过程2)适用场景3)三种异常4)优点(4)XA1)过程2)优点三、问题(1)如何选择模式?四、资料 一、简介 Seata(Simple Extensible Autonomous Transaction Architecture):简单可扩展自治事务框架 Seata提供全方位分布...

fanfan4569的博客 1万+

Seata 极简入门

1. 概述 Seata是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。 1.1 四种事务模式 Seata 目标打造一站式的分布事务的解决方案,最终会提供四种事务模式: AT 模式:参见《Seata AT 模式》文档 TCC 模式:参见《Seata TCC 模式》文档 Saga 模式:参见《SEATA Saga 模式》文档 XA 模式:正在开发中... 目前使用的流行度情况是:AT > TCC > Saga。因此,我们在学习 Seata 的时候.

weixin_42073629的博客 1642

Seata

使用 搭建初始配置 打开conf下的file.conf 使用conf下的db_store.sql文件建库store 在业务模块数据库 执行db_undo_log.sql 修改register.conf 指明注册自中心是nacos,配置连接信息 vgroup_mapping.my_test_tx_group = "default" #修改分组 最后启动nacos 再启动seata-s...

weixin_44130043的博客 411

Seata 0.8.0 正式发布

java4all原创,欢迎关注 摘要:Seata 0.8.0 正式发布。 Seata 0.8.0 正式发布。 Seata是阿里巴巴开源的分布式事务中间件,以高效并且对业务0 侵入的方式,解决微服务场景下面临的分布式事务问题。 0.8.0版本主要feature: 1.支持 oracle 数据库的 AT 模式; 2.支持 or...

IT云清 1727

Seata分布式事务学习笔记

目录一、Seata简介、安装1、一个典型的分布式事务过程2、使用方法3、seata-server安装1、官网地址2、seata-server-0.9.0.zip解压配置3、mysql数据库新建库seata4、在数据库新建表5、修改seata-server-0.9.0\seata\conf目录下registry.conf配置文件6、先启动Nacos在启动seata-server二、seata原理简介1、说明2、TC、TM、RM3、AT模式如何做到对业务无侵入**AT模式**4、debug5、补充三、测试订单、

一个到老才知道分享的人的博客 1173

**解锁PHP应用新维度——探索Hyperf的Box工具箱**

解锁PHP应用新维度——探索Hyperf的Box工具箱 去发现同类优质开源项目:https://gitcode.com/ 在这个快速发展的数字时代,开发者们一直在寻求更高效、更便捷的方式来优化他们的工作流程与开发体验。作为PHP社区的一员,你是否也曾梦想过拥有一个全能的工具箱,不仅能够简化你的环境搭建,还能助你在应用程序的构建上一臂之力?今天,我们将深入介绍Hyperf的Box,一款正逐渐成为PH...

gitblog_00056的博客 504

2PC(两阶段提交)【XA 与 Seata方案】

一、概述 2PC(two phase commit protocol,2PC)即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)、提交阶段(Commit phase),2指两个阶段,P指准备阶段,C指提交阶段。整个事务过程由事务管理器和参与者组成,事务管理器负责决策整个分布式事务的提交和回滚,事务参与者负责自己本地事务的提交和回滚。在计算机中部分关系数据库如 Oracle、MySQL 都支持两阶段提交协议。下面是计算机数据库进行两阶段提交的说明: 【1】准备阶段(Pre

m0_37235955的博客 858

seata 1.4安装与配置

seata是阿里巴巴的分布式全家桶解决方案 下载:https://github.com/seata/seata/releases 解压,注意看下里面有个README-zh.md,相关的一些脚本可以在这个文件的链接找到,因为不同的seata版本,脚本可能有差异,需要注意下。我这里把1.4.0的这个文件内容补充在下面: 脚本说明 client 存放用于客户端的配置和SQL at: AT模式下的 undo_log 建表语句 conf: 客户端的配置文件 saga: SAGA 模式下所需表的建表语句 sp

动哒APP—运动健康科技提供商 6653

Seata 发布 0.4.2 版本,支持 Consul 注册中心

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 本次更新主要内容如下: 特性 [#704] 增加 本地文件写入时 ByteBu...

weixin_34199405的博客 508

seata redis模式重构之全局事务更新

关于重构全局事务信息存储重构过程中一个问题的思考。 1.watch的必要性 jedis.hmset命令的语义: 如果这个map存在,就更新这个多个值; 如果这个map不存在,则新建map,然后设置键值对; 同时将多个 field-value (域-值)对设置到哈希表 key 中。 此命令会覆盖哈希表中已存在的域。 如果 key不存在,一个空哈希表被创建并执行 HMSET 操作。 如果命令执行成功,返回 OK 。 当 key 不是哈希表(hash)类型时,返回一个错误。 在更新全局事务session的ma

IT云清 1719

AI分布式Token中转站网关底层实现-东方仙盟

在终端优先同步架构下,所有终端智能体请求不再直连上游 MaaS 平台(千帆、百炼、DeepSeek 等),全部经由分布式 Token 中转站网关统一中继。网关承担虚拟客户密钥签发、上游子账号路由、前置内容安全审计、事务路由调度、可控网络震荡多上游链路容灾、SSE 流式透传、用量记账、封禁熔断、原始 IP 封包签名溯源等核心职责。本文基于 Go 实现分布式网关核心底座,复用架构原有无状态 Token 穿透、事务 ID 幂等、链路探活、多节点中继能力;区分两层密钥体系:面向终端客户的虚拟 Key。

cybersnow精通 28 门计算机语言,凭借其超凡的技术能力,成功开发过上万个应用,广泛涉及政府、商业、个人等众多领域,甚至在检察院、环保局、公安局等专业场景中也大放异彩。不仅熟练掌握单片机和物联网开发,在软件架构设计方面更是独树一帜,自创了跨平台软件 224
上一篇: 精彩回顾|Meetup 合肥站--云原生技术沙龙
下一篇: SOFA Weekly|C 位大咖说、本周 Contributor & QA
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值