dtm icon indicating copy to clipboard operation
dtm copied to clipboard

征求大家最想要的功能和特性

Open yedf2 opened this issue 2 years ago • 27 comments

dtm开源至今,受到了大量用户的青睐,现征求大家最想要的功能和特性,希望大家多给好的意见

yedf2 avatar Jul 23 '21 10:07 yedf2

请问目前有Java SDK的计划吗?我们目前是PHP和Java混合项目,期待能有Java SDK出现

ctyytc avatar Jul 24 '21 02:07 ctyytc

@ctyytc 您好,您能否参与进来,帮忙提供Java的SDK?这个工作的意义挺大,需要的工作量不大,例如python客户端,支持TCC,我大约花了1天全部弄完。 我可以把您加到维护者里面来,方便您修改和提交代码,不知您是否有兴趣?

yedf2 avatar Jul 24 '21 07:07 yedf2

C# 的SDK 很想要,有相关的SDK开发文档吗

geffzhang avatar Jul 28 '21 12:07 geffzhang

C# 的SDK 很想要,有相关的SDK开发文档吗

目前我们有PHP、python、node、go的SDK,您可以参考。这些项目都在  http://github.com/yedf 下面能找到

yedf2 avatar Jul 28 '21 14:07 yedf2

C# 的SDK 已经可以支持TCC 了https://github.com/yedf/dtmcli-csharp

geffzhang avatar Aug 04 '21 00:08 geffzhang

请问目前有Java SDK的计划吗?我们目前是PHP和Java混合项目,期待能有Java SDK出现

已有Java SDK,参考 https://github.com/yedf/dtmcli-java

yedf2 avatar Aug 24 '21 03:08 yedf2

代码结构有点乱, dtmcli 是golang版本的http  sdk, dtmgrpc 是 grpc sdk,  但是dtmsvr 又依赖了dtmcli的代码? 以及大量的字符串常量用来表示状态,影响可读性。 希望能改进一下

hisunwei avatar Sep 10 '21 06:09 hisunwei

代码结构有点乱, dtmcli 是golang版本的http  sdk, dtmgrpc 是 grpc sdk,  但是dtmsvr 又依赖了dtmcli的代码? 以及大量的字符串常量用来表示状态,影响可读性。 希望能改进一下

对于dtmsvr和dtmcli公用的代码,您认为如何组织更好?dtmsvr依赖dtmcli看起来并没有造成混乱,这样的主要目的是为了保持dtmcli的简单,不用再引入一个包。对于大多数用户来说,关心dtmcli就可以了

字符串表示状态,这样的可读性并不差呀,不太清楚您想要如何改善可读性?

yedf2 avatar Sep 10 '21 14:09 yedf2

建议提供Dubbo-go的gRPC实现,强强联手!

anden007 avatar Dec 01 '21 08:12 anden007

能否把提供OpenAPI Specification的swagger文件,这样方便各种语言client的自动生成?

csimplestring avatar Dec 28 '21 08:12 csimplestring

能否把提供OpenAPI Specification的swagger文件,这样方便各种语言client的自动生成?

能否给个参考资料,我看看

yedf2 avatar Dec 28 '21 09:12 yedf2

@yedf2 dtm的server是基于Gin开发的,所以应该可以使用 https://github.com/swaggo/gin-swagger 来自动生成swagger文档, 有了swagger文档后,任何语言就可以根据它来生成client,比如 https://github.com/OpenAPITools/openapi-generator

csimplestring avatar Dec 28 '21 10:12 csimplestring

我有空再研究一下,因为dtm一般不会裸着用http请求,通常会封装一层比较薄的SDK,要处理一下branch_id,子事务屏障等,所以直接生成的http client不太实用

yedf2 avatar Dec 28 '21 14:12 yedf2

子事务分支存在依赖关系,这么怎么做呢

wthdt avatar Jan 04 '22 10:01 wthdt

子事务分支存在依赖关系,这么怎么做呢

这个是指什么样的依赖?

yedf2 avatar Jan 04 '22 11:01 yedf2

请问是否有支持事物表分库分表的计划,如果业务上面日均业务量比较大,可能需要进行水平扩展。

CharlesZhong avatar Jan 04 '22 13:01 CharlesZhong

请问是否有支持事物表分库分表的计划,如果业务上面日均业务量比较大,可能需要进行水平扩展。

参考一下这个建表语句:sqls/dtmsvr.tdsql.sql。如果你已经有相关的实际场景,可以在群里讨论

yedf2 avatar Jan 04 '22 13:01 yedf2

PHP 的两阶段提交SDK什么时候能支持,文档说目前仅支持TCC,希望优先考虑

liuxzhi avatar Jan 06 '22 02:01 liuxzhi

PHP 的两阶段提交SDK什么时候能支持,文档说目前仅支持TCC,希望优先考虑

因为我不熟悉PHP,所以PHP的相关代码是由社区贡献的,欢迎PR

yedf2 avatar Jan 06 '22 03:01 yedf2

比如补偿分支依赖正向分支的结果呢?感觉这个框架不能解决相对复杂的场景

wthdt avatar Jan 10 '22 06:01 wthdt

比如补偿分支依赖正向分支的结果呢?感觉这个框架不能解决相对复杂的场景

补偿分支依赖正向分支的结果,这个可以直接在业务层解决,解决方案通常比较简单。如果放到分布式事务框架里面来做,反而非常复杂

yedf2 avatar Jan 10 '22 07:01 yedf2

针对python的sdk,看到业务回调需要依赖pymysql的cursor对象。希望业务代码回调能支持基于sqlalchemy的session的形式。补充:查阅barrier.py中使用cursor主要是用来执行commit, rollback,具体行为和session相似,只是对dtm_barrier表的写操作获取affected数量还不太确定session是否可以达成和cursor相同的效果。

Bryant-Yang avatar Feb 18 '22 07:02 Bryant-Yang

针对python的sdk,看到业务回调需要依赖pymysql的cursor对象。希望业务代码回调能支持基于sqlalchemy的session的形式。补充:查阅barrier.py中使用cursor主要是用来执行commit, rollback,具体行为和session相似,只是对dtm_barrier表的写操作获取affected数量还不太确定session是否可以达成和cursor相同的效果。

您的建议非常好,欢迎提PR

yedf2 avatar Feb 18 '22 08:02 yedf2

希望能支持 Dapr https://github.com/dapr/dapr

dengyangxi avatar Jun 03 '22 13:06 dengyangxi

希望能支持 Dapr https://github.com/dapr/dapr

dengyangxi avatar Jun 03 '22 13:06 dengyangxi

希望可以支持 opentelemetry

shuqingzai avatar Oct 02 '22 07:10 shuqingzai

二阶段消息,分支事务的请求payload需要在本地事务执行完成后才能获取,比如将本地事务insert后得到的ID传给分支事务

aksu-104128 avatar Aug 17 '23 19:08 aksu-104128