項(xiàng)目進(jìn)行讀寫分離及分庫(kù)分表,在一個(gè)業(yè)務(wù)中,在一個(gè)事務(wù)中處理時(shí)候?qū)⑶袚Q多個(gè)數(shù)據(jù)源,需要保證同一事務(wù)多個(gè)數(shù)據(jù)源數(shù)據(jù)的一致性。

        此處使用atomikos來(lái)實(shí)現(xiàn)(附源碼)。另外需要注意以下:

       1:spring3.0之后不再支持jtom[jta]了,支持第三方開源軟件atomikos(http://www.atomikos.com/)來(lái)實(shí)現(xiàn). 
       2:org.springframework.transaction.jta.JotmFactoryBean類,spring-tx-2.5.6.jar中有此類,spring-tx-3.0.0.RELEASE.jar之后沒有此類。
       3:atomikos事務(wù)控制框架,其中看到有3種數(shù)據(jù)源,分別是,SimpleDataSourceBean,AtomikosDataSourceBean,AtomikosNonXADataSourceBean。
            1、SimpleDataSourceBean: 這個(gè)是最簡(jiǎn)單地?cái)?shù)據(jù)源配置,需要配置XA驅(qū)動(dòng)。
            2、AtomikosDataSourceBean:  分布式數(shù)據(jù)源,Atomikos實(shí)現(xiàn)的數(shù)據(jù)源,需要配置XA驅(qū)動(dòng),推薦此配置,可以配置連接池的信息。
            3、AtomikosNonXADataSourceBean: 非分布式數(shù)據(jù)源,該數(shù)據(jù)源配置需要普通JDBC的驅(qū)動(dòng),可以配置連接池:
       4:Atomikos支持XA(全局事務(wù))和NON-XA(非全局事務(wù)),NON-XA[nonxadatasource]效率高于XA。XA事務(wù)往往是包括多個(gè)數(shù)據(jù)源的全局事務(wù),非XA是單個(gè)數(shù)據(jù)源的.
       5:XA連接是一個(gè)JTA事務(wù)中的參與者。XA連接不支持JDBC的自動(dòng)提交特性。也就是說應(yīng)用程序不必在xa

網(wǎng)友評(píng)論