Proposal:Extend the SQL and resources supported by the AT transaction mode
Currently, Seata AT transaction mode supports limited SQL statements and databases (MySQL, Oracle, PostgreSQL, TiDB). We hope to extend more types of complex SQL statements and support more relational database resources or other types of resources including but not limited to MQ, NoSQL, etc.
• extend support for at least one relational database, MQ, or NoSQL resource.
• extended complex SQL support for AT schema.
扩展AT模式的SQL和资源支持
目前 Seata 的 AT 事务模式支持有限的 SQL 语句和数据库(MySQL、Oracle、PostgreSQL、TiDB),我们希望能扩展更多类型的复杂 SQL 语句和支持更多的关系数据库资源亦或者其他类型的资源包括但不限于 MQ、NoSQL 之类。
• 至少扩展支持一种的关系型数据库、MQ或者 NoSQL 资源。
• 扩展AT模式的复杂SQL支持。
mentor: Ji Min @slievrly, Seata project Maintainer
9条答案
按热度按时间zazmityj1#
I found project Seata really interesting and I am looking forward to work on this issue during the ASoC 2020. I would like to know what are the next steps and Is there any community platform/mailing list dedicated for ASoC 2020 where we can discuss on the issue further?
idv4meu82#
@rpjayasekara We welcome you to participate in the ASOC, if you expect to further communication with us can reply directly or subscribe to the group email
dev-seata+subscribe@googlegroups.com
.tp5buhyn3#
@rpjayasekara
reference:
druid
针对复杂SQL支持,你需要了解一下 druid 解析SQL,Seata中sqlparser模块负责提供SQL解析工具,rm-datasource模块负责中SQL解析,并且生成回滚记录。
参考:
druid
reference:
Apache RocketMQ
rabbitmq-java
jedis
mongo-java
针对扩展关系型数据库,或者MQ,NOSQL,如果选择支持新的关系型数据库,那么你需要了解新关系型数据库的语法,以及对SQL标准的支持情况,具体实现可以参照Seata中MySQL数据库的实现方法,不过需要注意新关系型数据库自身的一些特性。如果选择对MQ进行支持,你需要选择一种MQ中间件,例如(RocketMQ,RabbitMQ等),如果选择对NoSQL进行支持,你需要选择一种NoSQL的数据库,例如(Redis, MongoDB等)并使用它提供的java客户端实现。
参考:
Apache RocketMQ
rabbitmq-java
jedis
mongo-java
9nvpjoqh4#
@rpjayasekara apply: https://page-intl.aliyun.com/form/act1587253096/index.htm
1tu0hz3e5#
I would like to add MongoDB support for the Seata as at the moment Seata has no NoSQL DB implementations in AT transaction mode. Is there any implementation design documents like project architecture to understand the implementation of the Seata. I have some confusions of understanding the project.
gg58donl6#
@rpjayasekara https://seata.io/en-us/docs/overview/what-is-seata.html see it.
pkln4tw67#
@rpjayasekara https://seata.io/en-us/docs/dev/mode/at-mode.html
uqdfh47h8#
Which branch should I work on?
cvxl0en29#
Q.对最终一致性分布式事务如何保障实际生产中高可用?
对于常见的微服务系统,大部分接口调用是同步的,也就是一个服务直接调用另外一个服务的接口.但是在实际系统的开发中,可能服务间的调用是异步的。也就是说,一个服务发送一个消息给 MQ,
比如 RocketMQ、RabbitMQ等,另外一个服务从 MQ 消费到一条消息后进行处理其实就成异步处理了。针对这种基于MQ的异步调用,如何保证各个服务间的分布式事务和高可用?
Q.Saga涉及太多服务调用的话,就不太友好了,将流程管理器添加为协调器,是否可用RocketMq顺序消费