Himly TCC Dubbo 程序示例
Himly TCC Dubbo 程序示例
工程运行说明
1.运行底层基础服务(provider):account工程下的 AccountServiceApplication
2.运行业务层测试:transaction工程下的 TransactionServiceApplication
完整的项目工程地址:RPC-Demo
相关思路和原理
需要了解两个概念:TCC和RPC,可以参考下面两个Demo的思路部分说明:
下面简单说下思路:
根据之前缩写的TCC Demo程序的思路,使用 TCC 就是为了将 confirm和cancel的操作委托给第三方,在程序本身程序try后,由TCC第三方来推动进行下面的阶段
结合Dubbo的话,根据RPC的思路,为了简化客户端(provider)的使用,具体的函数调用都放到基础服务端
以本程序为例,大致流程图如下:
可以看到阶段一(try阶段)都是程序本身在使用RPC的方式进行调用执行
后面的confirm和cancel由TCC框架来进入RPC调用执行(在himly中全局的那个切面中)
从日志运行中也可以看出,具体的调用日志全打印在基础工程(Account)中
代码编写
简化操作,就将Api和provider层放到一起了,大致就下面两个步骤:
1.provider(Account基础服务编写):提供账号金额操作,作为Dubbo中的Provider
2.consumer(Transection上层服务编写):进行A和B用户的转账,作为Dubbo的Consumer
环境配置
Dubbo需要zookeeper,这里使用docker进行启动,方便使用:
1.provider(Account基础服务编写):提供账号金额操作,作为Dubbo中的Provider
首先编写API和具体实现,大致代码如下:
进行Dubbo Provider的配置,大致配置如下:
进行主函数配置,加载Dubbo配置,关闭tomcat,使用Dubbo内置通信
就此Provider端就搭建完成了,相关的数据库操作这里就不赘述了
2.consumer(Transection上层服务编写):进行A和B用户的转账,作为Dubbo的Consumer
引入Api(Service接口)的相关依赖,这里就简单添加Provider的模块了
编写业务处理具体代码,大致如下:
配置Dubbo的Consumer,大致如下,指明Api服务:
配置Dubbo的Consumer文件路径,运行业务代码测试,大致如下:
版权声明: 本文为 InfoQ 作者【萧】的原创文章。
原文链接:【http://xie.infoq.cn/article/6b455ca6973915a17ce9361ad】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论