上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

2018年GTS-分布式事务全新解决方案.pdf

编号:95636 PDF 28页 3.53MB 下载积分:VIP专享
下载报告请您先登录!

2018年GTS-分布式事务全新解决方案.pdf

1、GTS-分布式事务全新解决方案企业级互联网架构专场功能架构典型场景实践操作产品简介GTS是一款分布式事务中间件,是一站式的分布式事务解决方案。产品简介-GTS是什么跨库事务跨库事务服务化事务服务化事务消息事务消息事务混合事务混合事务阻塞协议,影响系统吞吐和可伸缩性性能不理想,很难满足互联网大并发需求缺乏容错机制接口标准化实现复杂,各种异常情况难于处理要求每个方案实现一个反向的回滚接口运维成本高,扩现移植性不理想要求应用与消息系统紧耦合,增加开发成本要求业务实现幂等最终一致性,适用场景受限XA方案补偿方案消息方案符合业务需求实现相对简单产品简介-GTS与其他解决方案对比产品简介-GTS与其他解决

2、方案对比GTS资源1资源2资源n资源层资源层应用系统1应用系统2应用系统n应用层应用层产品简介-GTS优势可以解决分布式数据库、跨数据库、服务化、消息系统场景下的分布式事务问题一行注解即可实现事务接入,也提供API 接入模式使用门槛低,节省开发和运维成本高达传统分布式事务 10 倍性能,4c8g集群可达1.5万TPS。热点数据高效处理,无惧数据冲突支持应用宕机、节点故障等各类异常情况下均可保持数据严格一致,支持同城主备及两地三中心部署。产品简介-产品历史20152015-1212发布发布 2.02.020172017-0202阿里云阿里云公测公测20182018-0505正式商用正式商用产品简

3、介-GTS商用5月21日正式商业,首发1月内购买,低至七折GTS GTS 实例规格分为实例规格分为 5 TPS(5 TPS(免费版免费版)、20 TPS20 TPS、100 TPS100 TPS、200 TPS200 TPS、500 TPS500 TPS、2000 TPS2000 TPS 和 5000 TPS5000 TPS。功能架构-总体架构功能架构-GTS事务模型全局事务全局事务分支事务分支事务1 1分支事务分支事务2 2分支事务分支事务3 3分支事务分支事务n nxidxidbranchidbranchid功能架构-事务协议1111GTS ClientRMRMRMRMRMGTSGTS S

4、erverServerClusterClusterxidBeginBegin TXTXxidxidGlobalGlobal commit/rollbackcommit/rollbackRegisterRegister branchbranch withwith xidxidbranchidbranchidReportReport branchbranch statusstatusBranchBranch commit/rollbackcommit/rollback功能架构-与微服务集成架构功能架构-容错机制(服务节点宕机)APPAPP1 1RMRMS3S3S1S1S2S2APPAPP2 2RM

5、RMAPP3APP3RMRMGlGlobalobal TransactionTransaction1.1.FailedFailed2.2.GlobalGlobal rollbackrollback3.3.RollbackRollback4 4.RollbackRollback功能架构-容错机制(应用节点宕机)APP1APP1RMRMAPP1APP1RMRMAPP1APP1RMRMDBDB1 1APPAPP2 2RMRMAPP2APP2RMRMAPP2APP2RMRMDBDB2 2GTSGTS功能架构-扩展机制S3S3S1S1S2S2AppAppAppAppAppAppAppAppAppAppA

6、ppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppApp功能架构-扩展机制S3S3S1S1S2S2AppAppAppAppAppAppAppAppAppAppAppAppS3S3S1S1S2S2S3S3S1S1S2S2AppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppApp功能架构-AT&MTATAT自动模式自动模式MTMT手动模式手动模式

7、两种模式完全兼容,可以组合使用两种模式完全兼容,可以组合使用强一致强一致高效高效无侵入无侵入支持广泛支持广泛 业务层自己维护事务业务层自己维护事务 TCCTCC 模式的支持模式的支持 非事务性资源上的事务非事务性资源上的事务应用场景-解决跨数据库的事务问题应用场景-解决微服务调用的事务问题应用场景-解决多系统集成的事务问题应用场景-解决混合事务问题DRDSDRDSMQMQEDASEDAS应用案例1.车况检查 物联网系统 运维平台2.生成订单信息 订单系统3.状态变更 车辆系统4.推送订单信息 MQ(流分析平台、显示大屏)1.锁车 物联网系统 运维平台2.结束订单 订单系统3.推送订单信息 MQ

8、(流分析平台、显示大屏)4.获取优惠信息 优惠系统5.扣款 支付系统实践操作-AT模式ATAT-注解场景下注解场景下 TxcTransactionTxcTransaction(timeout=60000*3)(timeout=60000*3)public void transfer(public void transfer(intint money)throws Exception money)throws Exception/A/A账户从账户从db1db1减钱减钱jdbcTemplate1jdbcTemplate1.update(update.update(update user_money

9、_auser_money_a set money=money set money=money-?,money);?,money);/B/B账户从账户从db2db2加钱加钱jdbcTemplate2jdbcTemplate2.update(update.update(update user_money_buser_money_bset money=money+?,money);set money=money+?,money);/余额不足时抛异常,余额不足时抛异常,GTSGTS会回滚前两次操作会回滚前两次操作intint money_amoney_a=getMoneygetMoney(jdbcTe

10、mplate1jdbcTemplate1,user_money_auser_money_a););if(if(money_amoney_a 0)0)throw new throw new RuntimeExceptionRuntimeException(Balance is not enough.);(Balance is not enough.);实践操作-AT模式ATAT-注解场景下注解场景下EDASEDAS客户端客户端TxcTransaction(appName=myapp2myapp2)public void public void moneyChange(intint money)t

11、hrows throws SQLException/测试先加后减incMoneyServiceincMoneyService.incMoney(money);decMoneyServicedecMoneyService.decMoney(money);money);实践操作-AT模式ATAT-注解场景下注解场景下EDASEDAS服务端服务端public public intint incMoneyincMoney(intint money)throws money)throws SQLExceptionSQLException if(if(getMoneygetMoney()=()=-1)1)

12、return return-1;1;Statement statement=Statement statement=connection.createStatementconnection.createStatement();();StringBuilderStringBuilder sbsb=new=new StringBuilderStringBuilder();();sb.appendsb.append(update(update user_money_incuser_money_inc set money=money+).append(money);set money=money+).

13、append(money);statement.executestatement.execute(sb.toStringsb.toString();();statement=statement=connection.createStatementconnection.createStatement();();ResultSetResultSet resultSetresultSet=statement.executeQuerystatement.executeQuery(select(select*from from user_money_incuser_money_inc););if(if(

14、resultSet.nextresultSet.next()()money=money=resultSet.getIntresultSet.getInt(money);(money);/adjust level/adjust levelupdateLevelService.updateLevelupdateLevelService.updateLevel(money);(money);return money;return money;实践操作-AT模式ATAT-注解场景下注解场景下EDASEDAS配置文件配置文件bean id=property name=:/xxx:3306/db1/pro

15、perty name=/constructor/property name=value=”xxx/事务分组名-实践操作-MT模式ATAT-注解场景下注解场景下 TxcTransactionTxcTransaction(timeout=60000)(timeout=60000)public void public void runBussinessrunBussiness(intint id,id,intint money,money,MtServiceRollinMtServiceRollin mtServiceRollinmtServiceRollin,MtServiceRolloutMtS

16、erviceRollout mtServiceRolloutmtServiceRollout)mtServiceRollout.rolloutmtServiceRollout.rollout(null,0,id,money);(null,0,id,money);mtServiceRollin.rollinmtServiceRollin.rollin(null,0,id,money);(null,0,id,money);public interface public interface MtServiceRolloutMtServiceRollout MtBranchMtBranch(name=

17、app1.reserve.rollout,(name=app1.reserve.rollout,commitMethodcommitMethod=commitRolloutcommitRollout,rollbackMethodrollbackMethod=rollbackRolloutrollbackRollout)public void rollout(String public void rollout(String txIdtxId,long,long branchIdbranchId,intint id,id,intint money);money);public public bo

18、oleanboolean commitRolloutcommitRollout(String(String txIdtxId,long,long branchIdbranchId,String,String udataudata););public public booleanboolean rollbackRolloutrollbackRollout(final String(final String txIdtxId,final long,final long branchIdbranchId,final,final String String udataudata););企业级互联网架构专场

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(2018年GTS-分布式事务全新解决方案.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部