当前位置:网站首页>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
边栏推荐
- 链表之双指针(快慢指针,先后指针,首尾指针)
- Form artifact
- Character conversion PTA
- 科技云报道荣膺全球云计算大会“云鼎奖”2013-2022十周年特别贡献奖
- Common interview questions of JVM manufacturers
- Postman core function analysis - parameterization and test report
- Depth first DFS and breadth first BFS -- traversing adjacency tables
- All expansion and collapse of a-tree
- Oracle is sorted by creation time. If the creation time is empty, the record is placed last
- When the industrial Internet era is truly mature, we will look at the emergence of a series of new industrial giants
猜你喜欢
元宇宙中的三大“派系”
The countdown to the launch of metaverse ape is hot
2022 Software Test Engineer salary increase strategy, how to reach 30K in three years
50. Pow(x, n). O(logN) Sol
Pl/sql basic case
Learning of mall permission module
The statistics of leetcode simple question is the public string that has appeared once
Cobaltstrike builds an intranet tunnel
Metasploit(msf)利用ms17_010(永恒之蓝)出现Encoding::UndefinedConversionError问题
Metaverse ape received $3.5 million in seed round financing from negentropy capital
随机推荐
数据泄露怎么办?'华生·K'7招消灭安全威胁
How to quickly experience oneos
Performance testing of software testing
Record several frequently asked questions (202207)
记录几个常见问题(202207)
Serializability of concurrent scheduling
Talking about MySQL index
344. Reverse String. Sol
解决thinkphp启动时“No input file specified”的问题
Win11缺少dll文件怎么办?Win11系统找不到dll文件修复方法
我把开源项目alinesno-cloud-service关闭了
Metaverse Ape上线倒计时,推荐活动火爆进行
分布式解决方案选型
Platformio create libopencm3 + FreeRTOS project
Leetcode simple question: the minimum cost of buying candy at a discount
119. Pascal‘s Triangle II. Sol
Distance from point to line intersection and included angle of line
Oracle hint understanding
Metaverse ape received $3.5 million in seed round financing from negentropy capital
A substring with a length of three and different characters in the leetcode simple question