当前位置:网站首页>TCC of distributed solutions
TCC of distributed solutions
2022-07-05 22:29:00 【Melting pole】
summary
What is? TCC Business
TCC yes Try、Confirm、Cancel Abbreviations of three words ,TCC Each branch transaction is required to implement three operations : Preprocessing Try、 confirm Confirm、 revoke Cancel.Try Do business check and resource reservation ,Confirm Do business confirmation ,Cancel To achieve a relationship with Try The reverse operation is the rollback operation .TM Initiate all branch transactions first try operation , Of any branch transaction try Operation execution failed ,TM Will initiate all branch transactions Cancel operation , if try The operation was all successful ,TM Will initiate all branch transactions Confirm operation , among Confirm/Cancel If the operation fails ,TM Will try again .
TCC There are three stages :
- Try The stage is to do business inspection ( Uniformity ) And resource reservation ( Isolation ), This stage is only a preliminary operation , It and the following Confirm Together to really form a complete business logic .
- Confirm The stage is to make a confirmation submission ,Try Start execution after all branch transactions of phase are executed successfully Confirm. Usually , use TCC Think Confirm There is no mistake in the stage . namely : Only Try success ,Confirm It must be successful . if Confirm The stage really went wrong , Need to introduce retry mechanism or manual processing .
- Cancel The phase is to cancel the branch transaction when the business execution error needs to be rolled back , Reserve resource release . Usually , use TCC Think Cancel Stage is also a certain success . if Cancel The stage really went wrong , Need to introduce retry mechanism or manual processing .
- TM Business management
TM The transaction manager can be implemented as a stand-alone service , You can also have the global transaction initiator act as TM Role ,TM Independent to be a common component , In order to consider the system structure and software reuse .
TM Generate a global transaction record when initiating a global transaction , Global transaction ID Throughout the chain of distributed transaction calls , Used to record transaction context , Track and record status , because Confirm and Cancel Failure needs to be retried , So we need to be idempotent , Idempotency refers to the same operation, no matter how many times it is requested , The results are the same .
TCC Solution
Currently on the market TCC There are many frameworks, such as the following :
( The following data collection date is 2019 year 07 month 11 Japan )
tcc-transaction:https://github.com/changmingxie/tcc-transaction
Hmily:https://github.com/dromara/hmily
ByteTCC:https://github.com/liuyangming/ByteTC
EasyTransaction:https://github.com/QNJR-GROUP/EasyTransaction
What was said in the previous section Seata Also support TCC, but Seata Of TCC Pattern configuration is relatively complex . Our goal is to understand TCC And the process of coordinated operation of affairs , So it's more of a lightweight, easy to understand framework , So... Was finally determined Hmily.
Hmily It's a high-performance distributed transaction TCC Open source framework . be based on Java Language to develop (JDK1.8), Support Dubbo,Spring Cloud etc. RPC Framework for distributed transactions . It currently supports the following features :
- Support nested transactions (Nested transaction support).
- use disruptor The framework reads and writes transaction logs asynchronously , And RPC There is no difference in the performance of the framework .
- Support SpringBoot-starter Project start , Easy to use .
- RPC Framework support :dubbo,motan,springCloud.
- Local transaction storage support :redis,mongodb,zookeeper,file,mysql.
- Transaction log serialization support :java,hessian,kryo,protostuff.
- use Aspect AOP To think in a face-to-face way Spring Seamless integration , Natural support cluster .
- RPC Transaction recovery , Timeout abnormal recovery, etc .
Hmily utilize AOP Intercept local and remote methods involved in distributed transactions , By intercepting , Transaction participants can transparently call the Try、Confirm、Cancel Method ; Pass transaction context ; And record the transaction log , Make compensation as appropriate , Retry etc. .
Hmily There is no need for transaction coordination services , But you need to provide a database (mysql/mongodb/zookeeper/redis/file) To store logs .
Hmily Realized TCC Service is the same as ordinary service , Just expose one interface , That's what it is Try Business .Confirm/cancel Business logic , Just because of global transaction commit / Rollback needs to be provided , therefore Confirm/Cancel Business only needs to be Hmily TCC Transaction framework discovery . It doesn't need to be perceived by other business services that call it .
website :https://dromara.org/website/zh-cn/docs/hmily/index.html
TCC Note that the three exception handling methods are null rollback 、 idempotent 、 Hang
Empty rollback
idempotent
Hang
边栏推荐
- U盘的文件无法删除文件怎么办?Win11无法删除U盘文件解决教程
- How to develop and introduce applet plug-ins
- Analysis of the problem that the cookie value in PHP contains a plus sign (+) and becomes a space
- Qtquick3d real time reflection
- Depth first DFS and breadth first BFS -- traversing adjacency tables
- thinkphp5.1跨域问题解决
- Form artifact
- Go language learning tutorial (XV)
- Record several frequently asked questions (202207)
- Why does the C# compiler allow an explicit cast between IEnumerable< T> and TAlmostAnything?
猜你喜欢

Analysis of the problem that the cookie value in PHP contains a plus sign (+) and becomes a space

boundary IoU 的计算方式

ESP32 hosted

A substring with a length of three and different characters in the leetcode simple question

南京:全面启用商品房买卖电子合同

90后测试员:“入职阿里,这一次,我决定不在跳槽了”

Navigation day answer applet: preliminary competition of navigation knowledge competition

Metaverse Ape获Negentropy Capital种子轮融资350万美元

Three "factions" in the metauniverse

What if win11 is missing a DLL file? Win11 system cannot find DLL file repair method
随机推荐
Platform bus
Postman core function analysis - parameterization and test report
How to create a thread
2022 Software Test Engineer salary increase strategy, how to reach 30K in three years
509. Fibonacci Number. Sol
Metaverse Ape获Negentropy Capital种子轮融资350万美元
Web3为互联网带来了哪些改变?
Win11缺少dll文件怎么办?Win11系统找不到dll文件修复方法
90后测试员:“入职阿里,这一次,我决定不在跳槽了”
50. Pow(x, n). O(logN) Sol
二叉树(二)——堆的代码实现
What if win11 is missing a DLL file? Win11 system cannot find DLL file repair method
C language - structural basis
Common interview questions of JVM manufacturers
opencv 判断点在多边形内外
南京:全面启用商品房买卖电子合同
[error record] groovy function parameter dynamic type error (guess: groovy.lang.missingmethodexception: no signature of method)
The new content of the text component can be added through the tag_ Config set foreground and background colors
Leetcode simple question: the minimum cost of buying candy at a discount
Matlab draws a cute fat doll