承接 lijiajun9602/seata 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

lijiajun9602/seata

Composer 安装命令:

composer require lijiajun9602/seata

包简介

Php Implementation For Seata.

README 文档

README

English | 中文

seata Logo

Stable Version Php Version dtm-client License

PHPUnit for Seata-PHP Total Downloads Monthly Downloads

Introduce

Seata is a very mature distributed transaction framework, and is the de facto standard platform for distributed transaction technology in the Java field. Seata-PHP is the implementation version of PHP language in Seata multilingual ecosystem, which realizes the interoperability between Java and PHP, so that PHP developers can also use Seata-PHP to realize distributed transactions.

Before learning about the Seata-PHP, let's first understand what's the Seata

What is Seata?

A distributed transaction solution with high performance and ease of use for microservices architecture.

Distributed Transaction Problem in Microservices

Let's imagine a traditional monolithic application. Its business is built up with 3 modules. They use a single local data source.

Naturally, data consistency will be guaranteed by the local transaction.

Monolithic App

Things have changed in a microservices architecture. The 3 modules mentioned above are designed to be 3 services on top of 3 different data sources (Pattern: Database per service). Data consistency within every single service is naturally guaranteed by the local transaction.

But how about the whole business logic scope?

Microservices Problem

How Seata do?

Seata is just a solution to the problem mentioned above.

Seata solution

Firstly, how to define a Distributed Transaction?

We say, a Distributed Transaction is a Global Transaction which is made up with a batch of Branch Transaction, and normally Branch Transaction is just Local Transaction.

Global & Branch

There are three roles in Seata Framework:

  • Transaction Coordinator(TC): Maintain status of global and branch transactions, drive the global commit or rollback.

  • Transaction Manager(TM): Define the scope of global transaction: begin a global transaction, commit or rollback a global transaction.

  • Resource Manager(RM): Manage resources that branch transactions working on, talk to TC for registering branch transactions and reporting status of branch transactions, and drive the branch transaction commit or rollback.

Model

A typical lifecycle of Seata managed distributed transaction:

  1. TM asks TC to begin a new global transaction. TC generates an XID representing the global transaction.

  2. XID is propagated through microservices' invoke chain.

  3. RM registers local transaction as a branch of the corresponding global transaction of XID to TC.

  4. TM asks TC for committing or rollbacking the corresponding global transaction of XID.

  5. TC drives all branch transactions under the corresponding global transaction of XID to finish branch committing or rollbacking.

Typical Process

For more details about principle and design, please go to Seata wiki page.

Seata-PHP TODO List

  • TCC
  • XA
  • AT
  • SAGA
  • TM
  • RPC communication
  • Transaction anti suspension
  • Null compensation
  • Registration Center
  • Metric monitoring
  • Examples

How to run?

  1. First download seata java and Start the TC service. For the specific process, refer to seata deployment guide Documentation

  2. Run seata-php whith seata-skeleton

How to join us?

Seata-PHP is currently in the construction stage. Welcome colleagues in the industry to join the group and work with us to promote the construction of Seata-PHP! If you want to contribute code to Seata-PHP, you can refer to the code contribution Specification document to understand the specifications of the community, or you can join our community DingTalk group: 44788115 and communicate together!

License

Seata-PHP uses Apache license version 2.0. Please refer to the license file for more information.

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2024-12-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固