点击这里给金令牌猎头顾问发消息
 金令牌首页 金令牌猎头 十佳职业经理人评选 最佳雇主评选 加入俱乐部 《职业经理人周刊》 会员区   薪酬调查报告登录  
Rss订阅
《职业经理人周刊》 猎头公司
职业经理人俱乐部首页 >> 经理人资讯 >> 技术研发 >> 焦点企业对话 >> 正文

GTS来了!阿里微服务架构下的分布式事务解决方案


  《职业经理人周刊》   猎头班长v微博   微信:AirPnP   2018/4/17
猎头职位搜索
猎头|自助猎头
兼职|推荐人才
1 2 页 共2页
4.4.3 专有云输出

这种形式主要面向于已建设了自己专有云平台的大用户,GTS可以直接部署到用户的专有云上,为专有云提供分布式事务服务。目前已经有10多个特大型企业的专有云使用GTS解决分布式事务难题,性能与稳定性经过了用户的严格检测。

4.5 GTS的使用方式

著名猎头机构推荐金领职位
金令牌搜索企业 职位 经理人 专访 社区 会员
军工仪器研发制造--电子工程师/项目经理30-50万北京
电网侧储能初创公司-全钒液流储能-收购德国技术团队--CEO150-200万 北京 深圳
央企背景-全钒液流电池电堆设计高级工程师(全钒液流储能)40-70万河北 深圳
新药/仿制药-研发系统-制剂部负责人CSO 60-70万北京 成都 江苏
光电通信芯片-INP光芯片设计资深专家80-150万深圳 青岛
语音操作系统产品经理(人工智能) 40-70万北京 天津
香港AI机器人-研发项目经理-图像处理/计算机视觉/机器学习算法60-100万香港 海外
中国著名航空材料公司-冶金(金相)专家 150-300万北京 西安

GTS对应用的侵入性非常低,使用也很简单。下面以订单存储应用为例说明。订单业务应用通过调用订单服务和库存服务完成订单业务,服务开发框架为Dubbo。

4.5.1 订单业务应用

在业务函数外围使用@TxcTransaction注解即可开启分布式事务。Dubbo应用通过隐藏参数将GTS的事务xid传播到服务端。

4.5.2 服务提供者

更新库存方法

4.6 GTS的应用情况

GTS目前已经在淘宝、天猫、阿里影业、淘票票、阿里妈妈、1688等阿里各业务系统广泛使用,经受了16年和17年两年双十一海量请求的考验。某线上业务系统最高流量已达十万TPS(每秒钟10万笔事务)。

GTS在公有云和专有云输出后,已经有了100多个线上用户,很多用户通过GTS解决SpringCloud、Dubbo、Edas等服务框架的分布式事务问题。业务领域涉及电力、物流、ETC、烟草、金融、零售、电商、共享出行等十几个行业,得到用户的一致认可。

上图是GTS与SpringCloud集成,应用于某共享出行系统。业务共享出行场景下,通过GTS支撑物联网系统、订单系统、支付系统、运维系统、分析系统等系各统应用的数据一致性,保证海量订单和数千万流水的交易。

4.7 GTS的工程样例

GTS的公有云样例可参考阿里云网站。在公网环境下提供sample-txc-simple和sample-txc-dubbo两个样例工程。

4.7.1.1 样例业务逻辑

该样例是GTS的入门sample,案例的业务逻辑是从A账户转账给B账户,其中A和B分别位于两个MySQL数据库中,使用GTS事务保证A和B账户钱的总数始终不变。

4.7.1.2 样例搭建方法

1) 准备数据库环境

安装MySQL,创建两个数据库db1和db2。在db1和db2中分别创建txc_undo_log表(SQL脚本见4.7.3)。在db1库中创建user_money_a表,在db2库中创建user_money_b表。

2) 下载样例

将sample-txc-simple文件下载到本地,样例中已经包含了GTS的SDK。

3) 修改配置

打开sample-txc-simple/src/main/resources目录下的txc-client-context.xml,将数据源的url、username、password修改为实际值。

4) 运行样例

在sample-txc-simple目录下执行build.sh编译本工程。编译完成后执行run.sh。

4.7.2 sample-txc-dubbo 样例

4.7.2.1 样例业务逻辑

本案例模拟了用户下订单、减库存的业务逻辑。客户端(Client)通过调用订单服务(OrderService)创建订单,之后通过调用库存服务(StockService)扣库存。其中订单服务读写订单数据库,库存服务读写库存数据库。由 GTS 保证跨服务事务的一致性。

4.7.2.2 样例搭建方法

1) 准备数据库环境

安装MySQL,创建两个数据库db1和db2。在db1和db2中分别创建txc_undo_log表。在db1库中创建orders表,在db2库中创建stock表。

2) 下载样例

将样例文件sample-txc-dubbo下载到本地机器,样例中已经包含了GTS的SDK。

3) 修改配置

打开sample-txc-dubbo/src/main/resources目录,将dubbo-order-service.xml、dubbo-stock-service.xml两个文件中数据源的url、username、password修改为实际值。

4) 运行样例

a. 编译程序

在工程根目录执行 build.sh 命令,编译工程。编译后会在 sample-txc-dubbo/client/bin 目录下生成 order_run.sh、stock_run.sh、client_run.sh 三个运行脚本对应订单服务、库存服务以及客户端。

b. 运行程序

在根目录执行run.sh,该脚本会依次启动order_run.sh(订单服务)、stock_run.sh(库存服务)和client_run.sh(客户端程序)。

4.7.2.3 其他说明

样例使用Multicast注册中心的声明方式。如果本机使用无线网络,dubbo服务在绑定地址时有可能获取ipv6地址,可以通过jvm启动参数禁用。 方法是配置jvm启动参数 -Djava.net.preferIPv4Stack=true。

4.7.3 SQL

4.7.3.1 建表 txc_undo_log

CREATE TABLE txc_undo_log (

id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

gmt_create datetime NOT NULL COMMENT '创建时间',

gmt_modified datetime NOT NULL COMMENT '修改时间',

xid varchar(100) NOT NULL COMMENT '全局事务ID',

branch_id bigint(20) NOT NULL COMMENT '分支事务ID',

rollback_info longblob NOT NULL COMMENT 'LOG',

status int(11) NOT NULL COMMENT '状态',

server varchar(32) NOT NULL COMMENT '分支所在DB IP',

PRIMARY KEY (id),

KEY unionkey (xid,branch_id)

) ENGINE=InnoDB AUTO_INCREMENT=211225994 DEFAULT CHARSET=utf8 COMMENT='事务日志表';

4.7.3.2 建表 user_money_a

CREATE TABLE user_money_a (

id int(11) NOT NULL AUTO_INCREMENT,

money int(11) DEFAULT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

4.7.3.3 建表 user_money_b

CREATE TABLE user_money_b (

id int(11) NOT NULL AUTO_INCREMENT,

money int(11) DEFAULT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

4.7.3.4 建表 orders

CREATE TABLE orders (

id bigint(20) NOT NULL AUTO_INCREMENT,

user_id varchar(255) NOT NULL,

product_id int(11) NOT NULL,

number int(11) NOT NULL,

gmt_create timestamp NOT NULL,

PRIMARY KEY (id)

) ENGINE=MyISAM AUTO_INCREMENT=351 DEFAULT CHARSET=utf8

4.7.3.5 建表 stock

CREATE TABLE stock (

product_id int(11) NOT NULL,

price float NOT NULL,

amount int(11) NOT NULL,

PRIMARY KEY (product_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

5 总结

GTS已经在阿里内部广泛使用,经过了双十一流量高峰的考验。内部成熟后,在专有云和公有云服务了很多用户,很多用户一天事务量在千万/亿级别,解决了业务服务化改造后的分布式事务棘手技术难题。

我们相信,作为既满足事务ACID特性,又具备高性能、高可用、业务侵入性低的分布式事务中间件,未来GTS能帮助更多的开发者,推动行业持续发展。

(来源:搜狐)
1 2 页 共2页


我们尊重原创者版权,除非我们确实无法确认作者以外,我们都会注明作者和来源。在此向原创者表示感谢。本网转载文章完全是为了内部学习、研究之非商业目的,若是涉及版权等问题,烦请联系 service@execunet.cn 或致电 010-85885475 删除,谢谢!

发表评论:
主题:
内容:
匿名发表 验证码: 登录名: 密码:   个人 企业
发帖须知:
一、请遵守中华人民共和国有关法律法规、《全国人大常委会关于维护互联网安全的决定》《互联网新闻信息服务管理规定》
二、请注意语言文明,尊重网络道德,并承担一切因您的行为而直接或间接引起的法律责任。
三、管理员有权保留或删除其管辖留言中的任意内容。
四、您在本站发表的言论,本站有权在网站内转载或引用。
五、发表本评论即表明您已经阅读并接受上述条款。
金令牌猎头
企业找猎头   职业经理人找猎头
CTO相关资讯
更多>> 
CTO相关猎头职位
更多>> 
十大猎头公司推荐金领职位
关于我们 | 招聘猎头 | 猎头 | 自助猎头 | 悬赏招聘 | 十佳职业经理人评选 | 年度最佳雇主评选 | 会员登录 | 企业 | 职位 | 设为主页
联系我们 | 法律声明 | 搜索 | 猎头招聘 | 猎头公司 | 《职业经理人周刊》 | 职业经理人俱乐部 | 沙龙活动 | 资讯 | 刊例 | 收藏本站
Copyright® 版权所有  猎头服务热线:010-85885475 E-MAIL:club@execunet.cn
京ICP备05025905号-1   京公网安备 110105001605号
点击这里给金令牌猎头顾问发消息 猎头顾问