Skip to content

一,回顾事务

二,使用seata添加分布式事务

(2.1)初识Seata

Seata是 219 年 1 ⽉份蚂蚁⾦服和阿⾥巴巴共同开源的分布式事务解决⽅案。致⼒于提供⾼性能和简单易⽤的分

布式事务服务,为⽤⼾打造⼀站式的分布式解决⽅案。

官⽹地址:http://seata.io/,其中的⽂档、播客中提供了⼤量的使⽤说明、源码分析。

(2.2)Seata事务管理中有三个重要的角色:

TC (Transaction Coordinator) - 事务协调者:维护全局和分⽀事务的状态,协调全局事务提交或回

滚。

TM (Transaction Manager) - 事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事

务。

RM (Resource Manager) - 资源管理器:管理分⽀事务处理的资源,与TC交谈以注册分⽀事务和报告分⽀

事务的状态,并驱动分⽀事务提交或回滚。

入下图所示

(2.3)Seata基于上述架构提供了四种不同的分布式事务解决⽅案:

XA模式:强⼀致性分阶段事务模式,牺牲了⼀定的可⽤性,⽆业务侵⼊ CP

AT模式:最终⼀致的分阶段事务模式,⽆业务侵⼊,也是Seata的默认模式 BASE (默认)

TCC模式:最终⼀致的分阶段事务模式,有业务侵⼊ BASE

SAGA模式:⻓事务模式,有业务侵⼊ BASE

⽆论哪种⽅案,都离不开TC,也就是事务的协调者。

三,部署TC服务

(3.1).下载

⾸先我们要下载seata-server包,地址在http://seata.io/zh-cn/blog/download.html

当然,课前资料也准备好了:

(3.2)解压

在⾮中⽂⽬录解压缩这个zip包,其⽬录结构如下:

(3.3)修改配置

修改conf⽬录下的registry.conf⽂件:

内容如下:

properties
registry {
# tc服务的注册中心类,这里选择nacos,也可以是eureka、zookeeper等
type = "nacos"
nacos {
# seata tc 服务注册到 nacos的服务名称,可以自定义
application = "seata-tc-server"
serverAddr = "127.0.0.1:8848"
group = "DEFAULT_GROUP"
namespace = ""
cluster = "SH"
username = "nacos"
password = "nacos"
}
}
config {
# 读取tc服务端的配置文件的方式,这里是从nacos配置中心读取,这样如果tc是集群,可以共享配置
type = "nacos"
# 配置nacos地址等信息
nacos {
serverAddr = "127.0.0.1:8848"
namespace = ""
group = "SEATA_GROUP"
username = "nacos"
password = "nacos"
dataId = "seataServer.properties"
}
}

(3.4)启动本地nacos,在nacos添加配置

特别注意,为了让tc服务的集群可以共享配置,我们选择了nacos作为统⼀配置中⼼。因此服务端配置⽂件 seataServer.properties⽂件需要在nacos中配好。

格式如下:

内容如下:

plain
# 数据存储方式,db代表数据库
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://201.201.201.23:3366/cloud_demo?useUnicode=true&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai
store.db.user=root
store.db.password=MySQL5.7#
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
# 事务、日志等配置
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
==其中的数据库地址、⽤⼾名、密码都需要修改成你⾃⼰的数据库信息。==
5. 创建数据库表
特别注意:tc服务在管理分布式事务时,需要记录事务相关数据到数据库中,你需要提前创建好这些表。
新建⼀个名为seata的数据库,运⾏课前资料提供的sql⽂件:
这些表主要记录全局事务、分⽀事务、全局锁信息:
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
# 客户端与服务端传输方式
transport.serialization=seata
transport.compressor=none
# 关闭metrics功能,提高性能
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

(3.5)创建数据库表

sql
/*
 Navicat Premium Data Transfer

 Source Server : 本地连接
 Source Server Type : MySQL
 Source Server Version : 80031
 Source Host : localhost:3306
 Source Schema : seata_demo

 Target Server Type : MySQL
 Target Server Version : 80031
 File Encoding : 65001

 Date: 10/10/2025 14:55:07
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for branch_table
-- ----------------------------
DROP TABLE IF EXISTS `branch_table`;
CREATE TABLE `branch_table` (
 `branch_id` bigint(0) NOT NULL,
 `xid` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
 `transaction_id` bigint(0) NULL DEFAULT NULL,
 `resource_group_id` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `resource_id` varchar(256) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `branch_type` varchar(8) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `status` tinyint(0) NULL DEFAULT NULL,
 `client_id` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `application_data` varchar(2000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `gmt_create` datetime(6) NULL DEFAULT NULL,
 `gmt_modified` datetime(6) NULL DEFAULT NULL,
 PRIMARY KEY (`branch_id`) USING BTREE,
 INDEX `idx_xid`(`xid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of branch_table
-- ----------------------------

-- ----------------------------
-- Table structure for global_table
-- ----------------------------
DROP TABLE IF EXISTS `global_table`;
CREATE TABLE `global_table` (
 `xid` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
 `transaction_id` bigint(0) NULL DEFAULT NULL,
 `status` tinyint(0) NOT NULL,
 `application_id` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `transaction_service_group` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `transaction_name` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `timeout` int(0) NULL DEFAULT NULL,
 `begin_time` bigint(0) NULL DEFAULT NULL,
 `application_data` varchar(2000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `gmt_create` datetime(0) NULL DEFAULT NULL,
 `gmt_modified` datetime(0) NULL DEFAULT NULL,
 PRIMARY KEY (`xid`) USING BTREE,
 INDEX `idx_gmt_modified_status`(`gmt_modified`, `status`) USING BTREE,
 INDEX `idx_transaction_id`(`transaction_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of global_table
-- ----------------------------

-- ----------------------------
-- Table structure for lock_table
-- ----------------------------
DROP TABLE IF EXISTS `lock_table`;
CREATE TABLE `lock_table` (
 `row_key` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
 `xid` varchar(96) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `transaction_id` bigint(0) NULL DEFAULT NULL,
 `branch_id` bigint(0) NOT NULL,
 `resource_id` varchar(256) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `table_name` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `pk` varchar(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `gmt_create` datetime(0) NULL DEFAULT NULL,
 `gmt_modified` datetime(0) NULL DEFAULT NULL,
 PRIMARY KEY (`row_key`) USING BTREE,
 INDEX `idx_branch_id`(`branch_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of lock_table
-- ----------------------------

-- ----------------------------
-- Table structure for tb_account
-- ----------------------------
DROP TABLE IF EXISTS `tb_account`;
CREATE TABLE `tb_account` (
 `id` int(0) NOT NULL AUTO_INCREMENT,
 `user_id` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `money` int(0) UNSIGNED NULL DEFAULT 0,
 PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of tb_account
-- ----------------------------
INSERT INTO `tb_account` VALUES (2, '1', 92395287);

-- ----------------------------
-- Table structure for tb_order
-- ----------------------------
DROP TABLE IF EXISTS `tb_order`;
CREATE TABLE `tb_order` (
 `id` bigint(0) NOT NULL AUTO_INCREMENT,
 `user_id` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `commodity_code` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `count` int(0) NULL DEFAULT 0,
 `money` int(0) NULL DEFAULT 0,
 PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4436 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of tb_order
-- ----------------------------
INSERT INTO `tb_order` VALUES (3657, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3658, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3659, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3660, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3661, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3662, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3663, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3664, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3665, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3666, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3667, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3668, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3669, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3670, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3671, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3672, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3673, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3674, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3675, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3676, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3677, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3678, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3679, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3680, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3681, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3682, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3683, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3684, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3685, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3686, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3687, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3688, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3689, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3690, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3691, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3692, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3693, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3694, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3695, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3696, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3697, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3698, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3699, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3700, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3701, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3702, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3703, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3704, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3705, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3706, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3707, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3708, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3709, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3710, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3711, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3712, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3713, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3714, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3715, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3716, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3717, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3718, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3719, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3720, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3721, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3722, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3723, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3724, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3725, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3726, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3727, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3728, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3729, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3730, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3731, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3732, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3733, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3734, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3735, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3736, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3737, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3738, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3739, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3740, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3741, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3742, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3743, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3744, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3745, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3746, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3747, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3748, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3749, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3750, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3751, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3752, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3753, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3754, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3755, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3756, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3757, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3758, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3759, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3760, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3761, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3762, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3763, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3764, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3765, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3766, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3767, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3768, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3769, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3770, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3771, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3772, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3773, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3774, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3775, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3776, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3777, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3778, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3779, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3780, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3781, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3782, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3783, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3784, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3785, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3786, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3787, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3788, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3789, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3790, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3791, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3792, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3793, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3794, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3795, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3796, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3797, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3798, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3799, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3800, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3801, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3802, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3803, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3804, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3805, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3806, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3807, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3808, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3809, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3810, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3811, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3812, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3813, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3814, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3815, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3816, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3817, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3818, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3819, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3820, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3821, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3822, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3823, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3824, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3825, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3826, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3827, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3828, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3829, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3830, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3831, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3832, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3833, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3834, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3835, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3836, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3837, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3838, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3839, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3840, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3841, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3842, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3843, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3844, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3845, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3846, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3847, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3848, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3849, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3850, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3851, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3852, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3853, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3854, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3855, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3856, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3857, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3858, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3859, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3860, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3861, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3862, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3863, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3864, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3865, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3866, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3867, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3868, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3869, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3870, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3871, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3872, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3873, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3874, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3875, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3876, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3877, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3878, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3879, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3880, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3881, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3882, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3883, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3884, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3885, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3886, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3887, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3888, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3889, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3890, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3891, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3892, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3893, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3894, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3895, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3896, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3897, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3898, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3899, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3900, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3901, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3902, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3903, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3904, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3905, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3906, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3907, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3908, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3909, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3910, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3911, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3912, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3913, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3914, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3915, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3916, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3917, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3918, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3919, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3920, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3921, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3922, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3923, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3924, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3925, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3926, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3927, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3928, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3929, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3930, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3931, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3932, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3933, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3934, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3935, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3936, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3937, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3938, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3939, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3940, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3941, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3942, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3943, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3944, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3945, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3946, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3947, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3948, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3949, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3950, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3951, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3952, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3953, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3954, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3955, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3956, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3957, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3958, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3959, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3960, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3961, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3962, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3963, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3964, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3965, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3966, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3967, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3968, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3969, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3970, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3971, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3972, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3973, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3974, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3975, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3976, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3977, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3978, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3979, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3980, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3981, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3982, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3983, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3984, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3985, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3986, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3987, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3988, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3989, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3990, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3991, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3992, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3993, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3994, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3995, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3996, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3997, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3998, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (3999, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4000, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4001, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4002, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4003, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4004, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4005, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4006, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4007, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4008, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4009, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4010, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4011, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4012, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4013, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4014, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4015, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4016, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4017, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4018, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4019, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4020, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4021, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4022, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4023, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4024, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4025, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4026, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4027, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4028, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4029, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4030, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4031, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4032, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4033, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4034, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4035, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4036, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4037, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4038, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4039, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4040, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4041, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4042, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4043, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4044, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4045, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4046, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4047, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4048, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4049, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4050, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4051, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4052, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4053, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4054, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4055, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4056, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4057, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4058, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4059, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4060, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4061, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4062, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4063, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4064, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4065, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4066, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4067, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4068, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4069, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4070, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4071, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4072, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4073, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4074, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4075, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4076, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4077, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4078, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4079, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4080, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4081, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4082, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4083, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4084, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4085, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4086, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4087, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4088, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4089, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4090, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4091, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4092, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4093, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4094, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4095, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4096, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4097, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4098, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4099, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4100, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4101, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4102, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4103, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4104, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4105, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4106, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4107, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4108, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4110, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4111, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4112, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4113, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4114, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4115, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4116, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4117, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4118, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4119, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4120, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4121, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4122, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4123, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4124, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4125, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4126, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4127, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4128, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4129, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4130, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4131, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4132, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4133, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4134, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4135, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4136, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4137, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4138, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4139, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4140, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4141, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4142, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4143, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4144, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4145, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4146, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4147, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4148, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4149, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4150, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4151, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4152, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4153, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4154, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4155, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4156, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4157, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4158, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4159, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4160, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4161, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4162, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4163, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4164, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4165, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4166, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4167, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4168, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4169, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4170, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4171, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4172, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4173, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4174, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4175, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4176, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4177, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4178, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4179, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4180, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4181, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4183, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4184, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4185, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4186, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4187, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4188, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4189, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4190, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4191, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4192, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4193, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4194, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4195, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4196, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4197, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4198, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4199, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4200, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4201, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4202, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4203, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4205, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4208, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4209, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4213, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4214, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4217, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4218, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4220, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4222, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4223, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4224, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4226, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4227, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4228, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4229, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4230, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4231, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4232, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4233, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4234, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4235, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4236, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4237, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4238, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4239, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4240, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4241, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4242, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4243, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4244, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4245, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4246, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4247, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4248, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4249, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4250, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4251, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4252, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4253, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4254, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4255, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4256, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4257, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4258, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4259, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4260, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4261, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4262, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4263, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4264, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4265, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4266, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4267, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4268, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4269, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4270, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4271, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4272, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4273, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4274, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4275, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4276, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4277, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4278, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4279, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4280, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4281, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4282, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4283, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4284, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4285, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4286, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4287, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4288, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4289, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4290, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4291, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4292, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4293, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4294, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4295, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4296, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4297, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4298, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4299, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4300, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4301, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4302, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4303, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4304, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4305, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4306, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4308, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4309, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4310, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4311, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4312, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4314, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4315, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4316, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4317, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4319, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4320, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4321, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4325, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4327, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4328, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4330, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4331, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4332, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4333, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4334, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4335, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4336, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4337, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4338, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4339, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4340, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4341, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4342, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4343, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4344, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4345, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4346, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4347, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4348, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4349, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4350, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4351, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4352, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4353, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4354, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4355, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4356, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4357, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4358, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4359, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4360, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4361, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4362, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4363, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4364, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4365, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4366, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4367, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4368, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4369, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4370, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4371, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4372, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4373, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4374, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4375, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4376, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4377, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4378, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4379, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4380, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4381, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4382, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4383, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4384, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4385, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4386, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4387, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4388, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4389, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4390, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4391, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4392, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4393, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4394, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4395, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4396, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4397, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4398, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4399, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4400, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4401, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4403, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4404, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4405, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4406, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4408, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4409, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4410, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4411, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4412, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4413, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4415, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4416, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4417, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4418, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4419, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4420, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4421, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4422, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4423, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4424, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4425, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4426, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4428, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4430, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4431, '1', '9527', 1, 8);
INSERT INTO `tb_order` VALUES (4435, '1', '9527', 1, 8);

-- ----------------------------
-- Table structure for tb_storage
-- ----------------------------
DROP TABLE IF EXISTS `tb_storage`;
CREATE TABLE `tb_storage` (
 `id` int(0) NOT NULL AUTO_INCREMENT,
 `commodity_code` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
 `count` int(0) UNSIGNED NULL DEFAULT 0,
 PRIMARY KEY (`id`) USING BTREE,
 UNIQUE INDEX `commodity_code`(`commodity_code`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of tb_storage
-- ----------------------------
INSERT INTO `tb_storage` VALUES (2, '9527', 0);

-- ----------------------------
-- Table structure for undo_log
-- ----------------------------
DROP TABLE IF EXISTS `undo_log`;
CREATE TABLE `undo_log` (
 `branch_id` bigint(0) NOT NULL COMMENT 'branch transaction id',
 `xid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT 'global transaction id',
 `context` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT 'undo_log context,such as serialization',
 `rollback_info` longblob NOT NULL COMMENT 'rollback info',
 `log_status` int(0) NOT NULL COMMENT '0:normal status,1:defense status',
 `log_created` datetime(6) NOT NULL COMMENT 'create datetime',
 `log_modified` datetime(6) NOT NULL COMMENT 'modify datetime',
 UNIQUE INDEX `ux_undo_log`(`xid`, `branch_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = 'AT transaction mode undo table' ROW_FORMAT = Compact;

-- ----------------------------
-- Records of undo_log
-- ----------------------------

SET FOREIGN_KEY_CHECKS = 1;

(3.6)启动TC(事务协调器也就是teata)

进⼊bin⽬录,运⾏其中的seata-server.bat即可:

启动成功后,seata-server应该已经注册到nacos注册中⼼了。

访问:http://localhost:8082/order?userId=user202103032042012&commodityCode=100202003032041&count=1&money=200

(3.7)启动项目

老师预先给的项目(使用ID打开)

(3.8)修改配置文件(包括数据库)具体application.yml内容如下(此事未导入seata)

plain
server:
 port: 8081
logging:
 level:
 com.its: warn
spring:
 redis:
 host: 192.168.25.3
 port: 6379
 datasource: #数据源
 url: jdbc:mysql://201.201.201.33:3366/seata?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
 username: root
 password: MySQL5.7#
 driver-class-name: com.mysql.cj.jdbc.Driver
 #nacos
 cloud:
 nacos:
 server-addr: localhost:8848
 username: nacos
 password: nacos

 #服务实例ID(应用名称)
 application:
 name: storage-service

#添加mybatis-plus配置
mybatis-plus:
 configuration:
 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印SQL执行详情
 type-aliases-package: com.its.entity
feign:
 httpclient:
 enabled: true
 max-connections: 300
 max-connections-per-route: 50
 client:
 config:
 default: # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置
 loggerLevel: FULL # 日志级别

(3.9)修改数据库库存剩余为1

(3.10)访问

http://localhost:8082/order?userId=user202103032042012&commodityCode=100202003032041&count=1&money=1

四,添加seata依赖(每一个项目中都需要添加),在yml中配置seata相关属性

(4.1)添加seata依赖(并且升级数据库依赖)

plain
<!--seata分布式事务-->
<dependency>
 <groupId>com.alibaba.cloud</groupId>
 <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
</dependency>
 <!--升级数据库连接-->
<dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>druid-spring-boot-starter</artifactId>
 <version>1.2.16</version>
</dependency>

(4.2)在application.yml中配置seata相关属性

plain
seata:
 data-source-proxy-mode: AT
 registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址
 # 参考tc服务自己的registry.conf中的配置
 type: nacos
 nacos: # tc
 server-addr: 127.0.0.1:8848
 namespace: ""
 group: DEFAULT_GROUP
 application: seata-tc-server # tc服务在nacos中的服务名称
 cluster: SH
 tx-service-group: seata-demo # 事务组,根据这个获取tc服务的cluster名称
 service:
 vgroup-mapping: # 事务组与TC服务cluster的映射关系
 seata-demo: SH

(4.3)重新启动项目

(4.4)打开JMeter

(4.1.1)设置线程数每秒10个

(4.1.2)设置端口号

重新访问http://localhost:8082/order?userId=user202103032042012&commodityCode=100202003032041&count=1&money=1

(4.1.3)发送请求测试

此时会出现多个线程共同操作同一条数据的情况,此时在代码上需要加上锁(例如订单服务方法上加synchronized)

(4.5)当在分布式集群情况下(以订单服务为例)

(4.6)重启所有服务

(4.7)依旧使用JMeter发送多线程进行测试

此时会出现空间库存错误的情况

(4.8)更新代码

(4.8.1)加入第三方工具(redis)进行加锁方式对其优化

引入redis依赖

plain
<!--redis-->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

(4.8.2)在application.yml中添加属性

plain
spring:
 redis:
 host: 192.168.25.3
 port: 6379

(4.8.3)在com.its下创建一个名为config的包

(4.8.4)在config包下创建一个名为DataSourceProxy的配置类

plain
`@Configuration`
public class DataSourceProxy {
 `@Bean`
 public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
 RedisTemplate<String, Object> template = new RedisTemplate<>();
 template.setConnectionFactory(connectionFactory);
 template.setKeySerializer(new StringRedisSerializer());
 template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
 return template;
 }
}

(4.8.5)修改StorageController中的代码

plain
package com.its.web;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

import com.its.entity.Storage;
import com.its.service.StorageService;
import com.its.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.time.Duration;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * `@author` xxx
 * `@since` 2024年01月25日
 */
`@RestController`
`@RequestMapping`("/storage")
`@Slf4j`
public class StorageController {

 `@Autowired`
 private StorageService storageService;

 `@Autowired`
 private RedisTemplate<String,Object> redisTemplate;

 /**
 * 扣减库存
 * `@param` code 商品编号
 * `@param` count 要扣减的数量
 * `@return` 无
 */
 `@PutMapping`("/{code}/{count}")
 public R deduct(`@PathVariable`("code") String code, `@PathVariable`("count") Integer count) throws InterruptedException {
 String key = "storage";
 //只有当指定的key在Redis中不存在时,才会设置该key的值;如果key已经存在,则不执行任何操
 //Boolean 类型,设置成功返回 true,设置失败返回 false
 Boolean b = redisTemplate.opsForValue().setIfAbsent(key, code, Duration.ofSeconds(10));
 while (!b){
 //自旋锁
 Thread.sleep(10);
 b = redisTemplate.opsForValue().setIfAbsent(key, code);
 }
 try {
 LambdaQueryWrapper<Storage> wrapper = new LambdaQueryWrapper<>();
 wrapper.eq(Storage::getCommodityCode,code);
 Storage storage = storageService.getOne(wrapper);
 if(storage.getCount() >= count){ //10
 storage.setCount(storage.getCount() - count);
 storageService.updateById(storage);
 log.warn("扣减库存成功,剩余:{}",storage.getCount());
 return R.ok().message("扣减库存成功");
 }else {
 log.error("库存不足");
 return R.ok().message("库存不足");
 }
 } catch (Exception e) {
 throw new RuntimeException(e);
 } finally {
 //释放
 redisTemplate.delete(key);
 }
 }

}

(4.8.6)重启项目测试(完事)