鍦ㄥ垎甯冨紡鏁版嵁搴撶殑鍦烘櫙涓嬶紝鐩鎬俊瀵逛簬璇ユ暟鎹簱鐨勬搷浣滄渶緇堜竴瀹氬彲浠ユ垚鍔燂紝鎵浠ラ氳繃鏈澶у姫鍔涘弽澶嶅皾璇曢佽揪鎿嶄綔銆?/p>
浣跨敤鏈澶у姫鍔涢佽揪鍨嬫煍鎬т簨鍔$殑SQL
闇瑕佹弧瓚沖箓絳夋с?/p>
UPDATE xxx SET x=x+1
Sharding-JDBC-transaction
瀹屽叏鍩轟簬java
寮鍙戯紝鐩存帴鎻愪緵jar
鍖咃紝鍙洿鎺ヤ嬌鐢╩aven瀵煎叆鍧愭爣鍗沖彲浣跨敤銆?/li>Sharding-JDBC-transaction
闇瑕佹彁渚涙暟鎹簱瀛樺偍浜嬪姟鏃ュ織錛岄厤緗柟娉曞彲鍙傝浜嬪姟綆$悊鍣ㄩ厤緗」銆?/li>elastic-job
瀹炵幇鐨?code style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14.4px; padding: 2px 4px; color: #c7254e; border-radius: 4px; background-color: #f9f2f4;">Sharding-JDBC-transaction-async-job錛岄氳繃綆鍗曢厤緗嵆鍙惎鍔ㄩ珮鍙敤浣滀笟寮傛閫佽揪鏌旀т簨鍔★紝鍚姩鑴氭湰涓?code style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14.4px; padding: 2px 4px; color: #c7254e; border-radius: 4px; background-color: #f9f2f4;">start.sh銆?/li>Sharding-JDBC-transaction
鎻愪緵浜?jiǎn)鍩轰簬鍐呭瓨鐨勪簨鍔℃棩蹇楀瓨鍌ㄥ櫒鍜屽唴宓屽紓姝ヤ綔涓氥?/li> // 1. 閰嶇疆SoftTransactionConfiguration SoftTransactionConfiguration transactionConfig = new SoftTransactionConfiguration(dataSource); transactionConfig.setXXX(); // 2. 鍒濆鍖朣oftTransactionManager SoftTransactionManager transactionManager = new SoftTransactionManager(transactionConfig); transactionManager.init(); // 3. 鑾峰彇BEDSoftTransaction BEDSoftTransaction transaction = (BEDSoftTransaction) transactionManager.getTransaction(SoftTransactionType.BestEffortsDelivery); // 4. 寮鍚簨鍔?/span> transaction.begin(connection); // 5. 鎵цJDBC /* codes here */ * // 6.鍏抽棴浜嬪姟 transaction.end();
SoftTransactionConfiguration
閰嶇疆鐢ㄤ簬閰嶇疆浜嬪姟綆$悊鍣ㄣ?/p>
鍚嶇О | 綾誨瀷 | 蹇呭~ | 榛樿鍊?/em> | 璇存槑 |
---|---|---|---|---|
shardingDataSource | ShardingDataSource | 鏄?/code> | 浜嬪姟綆$悊鍣ㄧ鐞嗙殑鏁版嵁婧?/td> | |
syncMaxDeliveryTryTimes | int | 鍚?/td> | 3 | 鍚屾鐨勪簨鍔¢佽揪鐨勬渶澶у皾璇曟鏁?/td> |
storageType | enum | 鍚?/td> | RDB | 浜嬪姟鏃ュ織瀛樺偍綾誨瀷銆傚彲閫夊? RDB,MEMORY銆備嬌鐢≧DB綾誨瀷灝嗚嚜鍔ㄥ緩琛?/td> |
transactionLogDataSource | DataSource | 鍚?/td> | null | 瀛樺偍浜嬪姟鏃ュ織鐨勬暟鎹簮錛屽鏋渟torageType涓篟DB鍒欏繀濉?/td> |
bestEffortsDeliveryJobConfiguration | NestedBestEffortsDeliveryJobConfiguration | 鍚?/td> | null | 鏈澶у姫鍔涢佽揪鍨嬪唴宓屽紓姝ヤ綔涓氶厤緗璞°傚闇浣跨敤錛岃鍙傝?code style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14.4px; padding: 2px 4px; color: #c7254e; border-radius: 4px; background-color: #f9f2f4;">NestedBestEffortsDeliveryJobConfiguration閰嶇疆 |
NestedBestEffortsDeliveryJobConfiguration
閰嶇疆 (浠呭紑鍙戠幆澧?鐢ㄤ簬閰嶇疆鍐呭祵鐨勫紓姝ヤ綔涓氾紝浠呯敤浜庡紑鍙戠幆澧冦傜敓浜х幆澧冨簲浣跨敤鐙珛閮ㄧ講鐨勪綔涓氱増鏈?/p>
鍚嶇О | 綾誨瀷 | 蹇呭~ | 榛樿鍊?/em> | 璇存槑 |
---|---|---|---|---|
zookeeperPort | int | 鍚?/td> | 4181 | 鍐呭祵鐨勬敞鍐屼腑蹇?jī)绔彛鍙?/td> |
zookeeperDataDir | String | 鍚?/td> | target/test_zk_data/nano/ | 鍐呭祵鐨勬敞鍐屼腑蹇?jī)鐨勬暟鎹瓨鏀剧洰褰?/td> |
asyncMaxDeliveryTryTimes | int | 鍚?/td> | 3 | 寮傛鐨勪簨鍔¢佽揪鐨勬渶澶у皾璇曟鏁?/td> |
asyncMaxDeliveryTryDelayMillis | long | 鍚?/td> | 60000 | 鎵ц寮傛閫佽揪浜嬪姟鐨勫歡榪熸縐掓暟錛屾棭浜庢闂撮殧鏃墮棿鐨勫叆搴撲簨鍔℃墠浼?xì)琚紓姝ヤ綔涓氭墽琛?/td> |
yaml
鏂囦歡,鍙傜収紺轟緥銆?/li>start.sh
鑴氭湰鍚姩寮傛浣滀笟銆?/li>#鐩爣鏁版嵁搴撶殑鏁版嵁婧? targetDataSource: ds_0: !!org.apache.commons.dbcp.BasicDataSource driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/ds_0 username: root password: ds_1: !!org.apache.commons.dbcp.BasicDataSource driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/ds_1 username: root password: #浜嬪姟鏃ュ織鐨勬暟鎹簮. transactionLogDataSource: ds_trans: !!org.apache.commons.dbcp.BasicDataSource driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/trans_log username: root password: #娉ㄥ唽涓績(jī)閰嶇疆 zkConfig: #娉ㄥ唽涓績(jī)鐨勮繛鎺ュ湴鍧 connectionString: localhost:2181 #浣滀笟鐨勫懡鍚嶇┖闂?/span> namespace: Best-Efforts-Delivery-Job #娉ㄥ唽涓績(jī)鐨勭瓑寰呴噸璇曠殑闂撮殧鏃墮棿鐨勫垵濮嬪?/span> baseSleepTimeMilliseconds: 1000 #娉ㄥ唽涓績(jī)鐨勭瓑寰呴噸璇曠殑闂撮殧鏃墮棿鐨勬渶澶у?/span> maxSleepTimeMilliseconds: 3000 #娉ㄥ唽涓績(jī)鐨勬渶澶ч噸璇曟鏁?/span> maxRetries: 3 #浣滀笟閰嶇疆 jobConfig: #浣滀笟鍚嶇О name: bestEffortsDeliveryJob #瑙﹀彂浣滀笟鐨刢ron琛ㄨ揪寮?/span> cron: 0/5 * * * * ? #姣忔浣滀笟鑾峰彇鐨勪簨鍔℃棩蹇楁渶澶ф暟閲?/span> transactionLogFetchDataCount: 100 #浜嬪姟閫佽揪鐨勬渶澶у皾璇曟鏁? maxDeliveryTryTimes: 3 #鎵ц閫佽揪浜嬪姟鐨勫歡榪熸縐掓暟,鏃╀簬姝ら棿闅旀椂闂寸殑鍏ュ簱浜嬪姟鎵嶄細(xì)琚綔涓氭墽琛?/span> maxDeliveryTryDelayMillis: 60000
浜嬪姟鏀寔璇存槑
Sharding-JDBC
鐢變簬鎬ц兘鏂歸潰鐨勮冮噺錛屽喅瀹氫笉鏀寔寮轟竴鑷存?/code>鍒嗗竷寮忎簨鍔°傛垜浠凡鏄庣‘瑙勫垝綰胯礬鍥撅紝鏈潵浼?xì)鏀寔鏈緇堜竴鑷存х殑鏌旀т簨鍔°?/p>鐩墠鏈澶у姫鍔涢佽揪鍨?/code>鏌旀т簨鍔″凡寮鍙戝畬鎴愩?/p>濡傛灉涓嶄嬌鐢ㄦ煍鎬т簨鍔★紝涔熶細(xì)鑷姩鍖呭惈寮盭A
浜嬪姟鏀寔錛屾湁浠ヤ笅鍑犵偣璇存槑錛?/p>
瀹屽叏鏀寔闈炶法搴撲簨鍔★紝渚嬪錛氫粎鍒嗚〃錛屾垨鍒嗗簱浣嗘槸璺敱鐨勭粨鏋滃湪鍗曞簱涓?/p>
瀹屽叏鏀寔鍥犻昏緫寮傚父瀵艱嚧鐨勮法搴撲簨鍔°備緥濡傦細(xì)鍚屼竴浜嬪姟涓紝璺ㄤ袱涓簱鏇存柊銆傛洿鏂板畬姣曞悗錛屾姏鍑虹┖鎸囬拡錛屽垯涓や釜搴撶殑鍐呭閮借兘鍥炴粴銆?/p>
涓嶆敮鎸佸洜緗戠粶銆佺‖浠跺紓甯稿鑷寸殑璺ㄥ簱浜嬪姟銆備緥濡傦細(xì)鍚屼竴浜嬪姟涓紝璺ㄤ袱涓簱鏇存柊錛屾洿鏂板畬姣曞悗銆佹湭鎻愪氦涔嬪墠錛岀涓涓簱姝繪満錛屽垯鍙湁絎簩涓簱鏁版嵁鎻愪氦銆?/p>