什麼是事務?大家最熟悉的莫過于資料庫事務,一大堆sql操作一個db,要麼同時成功、要麼同時失敗。(gts支援acid,特此公告,不再解釋)
什麼是分布式事務?一大堆sql操作n個db,或者一大堆服務操作1個或多個db,要麼同時成功、要麼同時失敗。
怎麼保證事務?有一個解決辦法是“兩階段送出”,一階段大家先把該做的做了但是不送出,二階段再一起送出或都不送出。
單機事務到分布式事務的變化?在分布式環境下,所有的狀态同步都需要走網絡,成本變得非常高。是以做好分布式事務容易,難點在于怎樣做的又快又好。
現狀?分布式事務是性能殺手,千萬不要使用,可以異步做最終一緻,既保證性能又保證功能,完美!我們是程式員,不怕實作幂等、不怕實作補償、不怕邏輯複雜、不怕工作量、不怕人肉、不怕加班。。。
樓主想說:niubility!然而事實的真相是,過度使用事務造成的性能下降的惡果,應該由應用的開發者承擔;應用開發者在使用事務的時候,必須考慮到性能問題。然而,作為中間件,必須提供事務機制,而不是因為性能問題,就幹脆不提供事務。我們有義務把通用的問題從複雜業務中抽絲剝繭,做成穩定的工具,避免重複造輪子。更何況,我們隻是犧牲了那麼一丢丢性能,換來的是不用加班、不用承擔故障風險、可以更好的關注業務本身。
<a></a>
進入正題,什麼是gts?gts是一款高性能、高可靠、接入簡單的分布式事務中間件,用于解決分布式環境下的事務一緻性問題。該産品支援 drds(tddl)、rds、oracle、mysql、postgresql、h2 等多種資料源,并可以配合使用 edas(hsf)、dubbo 及多種私有 rpc 架構,同時還相容 metaq(mq) 消息隊列等中間件産品,能夠輕松實作分布式資料庫事務、多庫事務、消息事務、服務鍊路級事務及其各種組合,政策豐富,易用性和性能兼顧。
我們專注于提供易使用、高性能、穩定、可靠的完整的分布式事務解決方案體系。
作為雙11戰場的新兵,我們承擔了阿裡影業、村淘、菜鳥結算等業務線,以及公有雲波司登、慧銀等外部使用者的雙11大促。
gts承擔了保證業務資料一緻的責任,并且一般在業務出現異常的時候才發揮作用,把不完整的業務資料復原到操作之前的狀态。這種異常,在業務壓力不大的情況下,是低機率事件,而到了雙11大促這種業務流量突發的情況下,變成了頻發事件。從11.11零點到10分這段時間裡,後端通用服務系統均存在不同程度限流的狀況,前端業務出現了大量的不完整事務。我相信,使用gts的産品線都可以爽歪歪、早早洗洗碎了,完全不用擔心那些不完整的事務怎麼處理。
事實說明,菜鳥結算、阿裡影業、村淘的三個業務場景,在雙11的前30分鐘内,業務復原超過5%,全天平均復原超過2%。其他業務線普遍復原事務超過總量的1%。無一資料不一緻!!!
(1)解決tddl分庫分表産生的跨資料庫事務

(2)解決服務化産生的操作多個服務的分布式事務
(3)解決異構資料源,包括tddl、metaq、以及其他關系型資料庫産品的分布式事務問題;
完整的分布式事務解決方案;
高性能、高可靠;
九項發明專利奠定了技術壁壘;
支撐内外近50個使用者,經過實際驗證。
提升sql相容性
提升使用者體驗
豐富可接入資源(含nosql類、消息類、rdbms、更多服務架構)