PHPackages                             brown/brown-dtm - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. brown/brown-dtm

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

brown/brown-dtm
===============

分布式事务DTM

v1.0.0(2y ago)346.9k↓32.7%1Apache-2.0PHPPHP &gt;=7.4

Since May 4Pushed 2y ago1 watchersCompare

[ Source](https://github.com/BrownSweet/brown-dtm)[ Packagist](https://packagist.org/packages/brown/brown-dtm)[ RSS](/packages/brown-brown-dtm/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (3)Versions (2)Used By (1)

介绍
==

[](#介绍)

[dtm/dtm-client](https://packagist.org/packages/dtm/dtm-client) 是分布式事务管理器 [DTM](https://github.com/dtm-labs/dtm) 的 PHP 客户端，已支持 TCC模式、Saga、XA、二阶段消息模式的分布式事务模式，并分别实现了与 DTM Server 以 HTTP 协议或 gRPC 协议通讯，该客户端可安全运行于 PHP-FPM 和 Swoole 协程环境中。

关于 DTM
======

[](#关于-dtm)

DTM 是一款基于 Go 语言实现的开源分布式事务管理器，提供跨语言，跨存储引擎组合事务的强大功能。DTM 优雅的解决了幂等、空补偿、悬挂等分布式事务难题，也提供了简单易用、高性能、易水平扩展的分布式事务解决方案。

亮点
--

[](#亮点)

- 极易上手
    - 零配置启动服务，提供非常简单的 HTTP 接口，极大降低上手分布式事务的难度
- 跨语言
    - 可适合多语言栈的公司使用。方便 Go、Python、PHP、NodeJs、Ruby、C# 等各类语言使用。
- 使用简单
    - 开发者不再担心悬挂、空补偿、幂等各类问题，首创子事务屏障技术代为处理
- 易部署、易扩展
    - 仅依赖 MySQL/Redis，部署简单，易集群化，易水平扩展
- 多种分布式事务协议支持
    - TCC、SAGA、XA、二阶段消息，一站式解决多种分布式事务问题

对比
--

[](#对比)

在非 Java 语言下，暂未看到除 DTM 之外的成熟的分布式事务管理器，因此这里将 DTM 和 Java 中最成熟的开源项目 Seata 做对比：

特性DTMSEATA备注[支持语言](https://dtm.pub/other/opensource.html#lang)Go、C#、Java、Python、PHP...JavaDTM 可轻松接入一门新语言[存储引擎](https://dtm.pub/other/opensource.html#store)支持数据库、Redis、Mongo等数据库[异常处理](https://dtm.pub/other/opensource.html#exception)子事务屏障自动处理手动处理DTM 解决了幂等、悬挂、空补偿[SAGA事务](https://dtm.pub/other/opensource.html#saga)极简易用复杂状态机[二阶段消息](https://dtm.pub/other/opensource.html#msg)✓✗最简消息最终一致性架构[TCC事务](https://dtm.pub/other/opensource.html#tcc)✓✓[XA事务](https://dtm.pub/other/opensource.html#xa)✓✓[AT事务](https://dtm.pub/other/opensource.html#at)建议使用XA✓AT 与 XA类似，但有脏回滚[单服务多数据源](https://dtm.pub/other/opensource.html#multidb)✓✗[通信协议](https://dtm.pub/other/opensource.html#protocol)HTTP、gRPCDubbo等协议DTM对云原生更加友好[star数量](https://dtm.pub/other/opensource.html#star)[![github stars](https://camo.githubusercontent.com/03f26488dec8134f9a9230ab4397ee6b2b0a341b7bfa19d35a0a1c9fccda9b3c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f64746d2d6c6162732f64746d2e7376673f7374796c653d736f6369616c)](https://camo.githubusercontent.com/03f26488dec8134f9a9230ab4397ee6b2b0a341b7bfa19d35a0a1c9fccda9b3c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f64746d2d6c6162732f64746d2e7376673f7374796c653d736f6369616c)[![github stars](https://camo.githubusercontent.com/5819e318ba7b39b32bc332a1bd00b2c1d490461ab5bccaa47cca38c55305895c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f73656174612f73656174612e7376673f7374796c653d736f6369616c)](https://camo.githubusercontent.com/5819e318ba7b39b32bc332a1bd00b2c1d490461ab5bccaa47cca38c55305895c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f73656174612f73656174612e7376673f7374796c653d736f6369616c)DTM 从 2021-06-04 发布 0.1版本，发展飞快从上面对比的特性来看，DTM 在许多方面都具备很大的优势。如果考虑多语言支持、多存储引擎支持，那么 DTM 毫无疑问是您的首选.

安装
==

[](#安装)

通过 Composer 可以非常方便的安装 dtm-client

```
composer require brown/brown-dtm
```

- 使用时别忘了启动 DTM Server 哦

配置文件
----

[](#配置文件)

```
