全部产品
阿里云办公

sample-txc-dubbo 样例工程

更新时间:2018-03-30 11:26:26

业务逻辑说明

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

阿里云环境搭建方法

1. 准备部署环境

  1. 准备两台 RDS (经典网络)和一台 ECS (经典网络), 用于部署本应用。

  2. 在两个 RDS 实例中分别创建执行 txc_undo_log 表。

  3. 在 RDS1 中创建 orders 表,在 RDS2 中创建 stock 表。

    建表语句位于 txc-yun-sample/sql/sample-txc-dubbo.sql 文件中.

2. 修改配置。

  1. 数据源配置。

    1. 把该工程拷贝到 ECS 服务器上。

    2. 找到 txc-yun-sample/sample-txc-dubbo/src/main/resources 目录下的 dubbo-order-service.xml 和 dubbo-stock-service.xml 文件,将文件中的 url、username、password 替换为实际值。

  2. scanner 配置。

    1. resource 目录下每个 xml 文件中 <constructor-arg value="xxx"/> 的 xxx 替换为申请好的 GTS 事务分组 ID。

    2. resource 目录下每个 xml 文件中 <property name=" accessKey" value="xxx"/><property name=" secretKey" value="xxx"/> 的 xxx 分别替换为您阿里云账户的 Access Key ID 和 Access Key Secret。

3. 编译工程

txc-yun-sample/sample-txc-dubbo 目录下执行 build.sh 命令。

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

4. 运行样例

txc-yun-sample/sample-txc-dubbo 目录下执行 run.sh 命令。

该脚本会依次启动 order_run.sh(订单服务)、stock_run.sh(库存服务)和 client_run.sh(客户端程序)。

公网环境搭建方法

注意

  • 样例使用 Multicast 注册中心的声明方式。如果本机使用无线网络,Dubbo 服务在绑定地址时有可能获取 IPv6 地址,可以通过 JVM 启动参数禁用。方法是配置 JVM 启动参数 -Djava.net.preferIPv4Stack=true。
  • mysql-connector-java 的版本需要和 MySQL 数据库版本匹配。样例 pom.xml 中推荐的 5.1.38 版本已经在 5.0.55、5.6.16、5.6.21 三个 MySQL 数据库版本上运行过。
  • MySQL 数据库的库名、表名和字段名需要设置为大小写不敏感。

1. 准备本地数据库环境

  1. 准备一台能连接公网的电脑,配置 Java 环境和 Maven 环境。

  2. 安装 MySQL 数据库软件,并创建两个数据库 db1 和 db2。

  3. 在 db1 和 db2 中分别创建 txc_undo_log 表。

  4. 在 db1 库中创建 orders 表,在 db2 库中创建 stock 表。

    建表语句位于 txc-yun-sample/sql/sample-txc-dubbo.sql 文件中。

2. 修改配置

  1. 下载 txc-yun-sample 到本地。

  2. 数据源配置。

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

  3. scanner 配置。

    将 resource 目录下的每个 xml 文件中的 scanner 配置修改为:

    1. <bean class="com.taobao.txc.client.aop.TxcTransactionScaner">
    2. <constructor-arg value="myapp"/>
    3. <constructor-arg value="txc_test_public.1129361738553704.QD"/>
    4. <constructor-arg value="1" />
    5. <constructor-arg value="https://test-cs-gts.aliyuncs.com" />
    6. </bean>

3. 编译工程

  • Mac OS 或 Linux 系统

    sample-txc-dubbo 目录下执行 build.sh 命令。

  • Windows 系统

    sample-txc-dubbo 目录下执行 build.bat 命令。

4. 运行样例

  • Mac OS 或 Linux 系统

    txc-yun-sample/sample-txc-dubbo 目录下执行 run.sh 命令。

    该脚本会依次启动 order_run.sh(订单服务)、stock_run.sh(库存服务)和 client_run.sh(客户端程序)。

  • Windows 系统

    1. 启动 cmd.exe,进入 txc-yun-sample/sample-txc-dubbo/client/bin 目录。

    2. 执行 order.bat 命令,运行订单服务。

    3. 执行 stock.bat 命令,运行库存服务。

    4. 订单服务和库存服务都启动成功后,执行 client.bat 命令, 运行客户端程序。