Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate Seata and ShardingSphere #983

Open
terrymanu opened this issue May 7, 2019 · 7 comments · Fixed by #1162
Open

Integrate Seata and ShardingSphere #983

terrymanu opened this issue May 7, 2019 · 7 comments · Fixed by #1162
Labels
type: feature Category issues or prs related to feature request.

Comments

@terrymanu
Copy link
Member

ShardingSphere is an open-source ecosystem consisted of a set of distributed database middleware solutions, including 2 independent products, Sharding-JDBC, Sharding-Proxy.

They all provide functions of data sharding, distributed transaction and database orchestration, applicable in a variety of situations such as Java isomorphism, heterogeneous language and cloud native.

ShardingSphere are very glad to integrate Seata as a kind of distributed transaction implementation.

It has already create issue to discuss more details, we can discuss how to integration them better.

@ujjboy ujjboy added the type: feature Category issues or prs related to feature request. label May 7, 2019
@zhangthen
Copy link
Contributor

zhangthen commented May 7, 2019

Look forward to it.

@slievrly slievrly pinned this issue May 8, 2019
@lingcoder
Copy link

Great work!!!Look forward

@cherrylzhao
Copy link
Member

cherrylzhao commented May 22, 2019

hi, all
we have implemented SeataATShardingTransactionManager in this way.
image

you can get more details from our example.

During integration, I have found some issues that need to be done in seata side.

  • reset initialized flag & instance when destroy RpcClient. see PR Reset initialized flag & instance while destroy(). split PR #1105 #1162
  • batch remove undo_log SQL is wrong
    it have been resolved in develop branch.
  • rollback cannot executed normally.
    it seems undo data validate logic in dev branch is wrong.
  • consider about adding a SPI for SQL-Recovery to avoid parsing SQL twice between Seata and ShardingSphere.

I prefer to contribute PRs for that.

@cherrylzhao
Copy link
Member

@wuzunqian ShardingSphere have provided transaction api for integrating other transaction, transaction type can changed dynamically in runtime, also you can config DataSourceProxy directly in your application.

@jyizheng
Copy link

I am interested in this issue. What it the status of it?

@terrymanu
Copy link
Member Author

This issue is finished, and ShardingSphere has already provide a example. Please try to use in your application if somebody interested.

FYI: https://github.com/apache/incubator-shardingsphere-example/tree/dev/sharding-jdbc-example/transaction-example/transaction-base-seata-raw-jdbc-example

I will close this issue if test enough.

@slievrly slievrly unpinned this issue May 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: feature Category issues or prs related to feature request.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants
@ujjboy @jyizheng @terrymanu @cherrylzhao @lingcoder @zhangthen and others