手动搭建webase(4)——交易服务

1.前提条件
在这里插入图片描述

  1. 拉取代码
    执行命令:
git clone https://github.com/WeBankFinTech/WeBASE-Transaction.git

#若因网络问题导致长时间下载失败,可尝试以下命令
git clone https://gitee.com/WeBank/WeBASE-Transaction.git

进入目录:

cd WeBASE-Transaction
  1. 编译代码
    使用以下方式编译构建,如果出现问题可以查看 常见问题解答
    方式一:如果服务器已安装Gradle,且版本为gradle-4.10或以上
gradle build -x test

方式二:如果服务器未安装Gradle,或者版本不是gradle-4.10或以上,使用gradlew编译

chmod +x ./gradlew && ./gradlew build -x test

在这里插入图片描述

构建完成后,会在根目录WeBASE-Transaction下生成已编译的代码目录dist。

  1. 修改配置
    4.1 复制模板
    进入编译目录dist:
cd dist

dist目录提供了一份配置模板conf_template:

根据配置模板生成一份实际配置conf。初次部署可直接拷贝。
例如:

cp conf_template conf -r

4.2 复制证书
进入配置目录conf:

cd conf

将节点所在目录nodes/${ip}/sdk下的所有文件拷贝到当前conf目录(包括ca.crt, sdk.crt, sdk.key, node.crt, node.key),供SDK与节点建立连接时使用。(若没有node.crt, node.key,可通过cp复制sdk.crt为node.crt, 复制sdk.key为node.key)

若使用的是国密SSL模式,则将nodes/${ip}/sdk/gm下的所有文件(包括gmca.crt, gmensdk.crt, gmensdk.key, gmsdk.crt, gmensdk.key)拷贝到当前conf目录(无需拷贝sdk目录下的sdk.crt等证书)。
在这里插入图片描述

4.3 修改配置
说明: 有注释的地方根据实际情况修改,完整配置项说明请查看 配置说明

vi application.properties

################################### Basic Configuration ###################################
#工程服务端口,端口被占用则修改 server.port=5003 server.context-path=/WeBASE-Transaction
mybatis.mapper-locations=classpath:mapper/*.xml
logging.config=classpath:log4j2.xml

################################### web3sdk Configuration ###################################
#机构名 sdk.orgName=webank sdk.timeoutsdk=10000
#线程池配置 sdk.corePoolSize=100 sdk.maxPoolSize=500 sdk.queueCapacity=500 sdk.keepAlive=60
#群组信息,可配置多群组和多节点
#群组id(下同) sdk.groupConfig.allChannelConnections[0].groupId=1
#连接节点的ip和channelPort(下同) sdk.groupConfig.allChannelConnections[0].connectionsStr[0]=127.0.0.1:20200
sdk.groupConfig.allChannelConnections[0].connectionsStr[1]=127.0.0.1:20201
sdk.groupConfig.allChannelConnections[1].groupId=2
sdk.groupConfig.allChannelConnections[1].connectionsStr[0]=127.0.0.1:20200
sdk.groupConfig.allChannelConnections[1].connectionsStr[1]=127.0.0.1:20201
#切换国密与非国密 0: standard, 1: guomi sdk.encryptType=0
################################### constant Configuration ###################################
#WeBASE-Sign签名服务ip端口,使用本签名方式则对应修改 constant.signServer=127.0.0.1:5004
#本地配置私钥进行签名,使用本签名方式则对应修改 constant.privateKey=edf02a4a69b14ee6b1650a95de71d5f50496ef62ae4213026bd8d6651d030995
constant.cronTrans=0/1 * * * * ? constant.requestCountMax=6
constant.selectCount=10 constant.intervalTime=600
constant.sleepTime=50
#是否删除数据 constant.ifDeleteData=false constant.cronDeleteData=0 0 1 * * ? constant.keepDays=360
#使用分布式任务部署多活(true-是,false-否) constant.ifDistributedTask=false

################################### elastic-job 分布式任务 ###################################
#部署多活的话需配置zookeeper,支持集群 job.regCenter.serverLists=127.0.0.1:2181
#zookeeper命名空间 job.regCenter.namespace=elasticjob-transaction
#分片数(如多活3个的话可分成3片) job.dataflow.shardingTotalCount=3

################################### 数据源配置 ###################################
#* 说明:本工程使用Sharding-JDBC分库分表,支持单一数据源,也支持多库多表。
#* 单库单表:配置单个数据源,将分库策略和分表策略注释或删除
#* 多库多表:配置多数据源,以群组分库,以年份分表,用户自定义每年分成几个表(注:分表策略的路由字段不可修改[id,gmt_create])
#* 样例:以两个数据源为例(数据库需事先创建),每张表根据年分表,每年再分成两个子表,以2020和2021年的表为例

#配置所有的数据源,如此处定义了ds0,ds1两个数据源,对应两个库 sharding.jdbc.datasource.names=ds0,ds1

#定义数据源ds0,配置数据库连接信息
sharding.jdbc.datasource.ds0.type=com.alibaba.druid.pool.DruidDataSource
sharding.jdbc.datasource.ds0.driver-class-name=com.mysql.cj.jdbc.Driver
sharding.jdbc.datasource.ds0.url=jdbc:mysql://127.0.0.1:3306/webasetransaction0?autoReconnect=true&useSSL=false&serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=UTF-8
sharding.jdbc.datasource.ds0.username=dbUsername
sharding.jdbc.datasource.ds0.password=dbPassword

#定义数据源ds1,配置数据库连接信息
sharding.jdbc.datasource.ds1.type=com.alibaba.druid.pool.DruidDataSource
sharding.jdbc.datasource.ds1.driver-class-name=com.mysql.cj.jdbc.Driver
sharding.jdbc.datasource.ds1.url=jdbc:mysql://127.0.0.1:3306/webasetransaction1?autoReconnect=true&useSSL=false&serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=UTF-8
sharding.jdbc.datasource.ds1.username=dbUsername
sharding.jdbc.datasource.ds1.password=dbPassword

#定义数据库分片策略,如此处以群组id取模2来路由到ds0或ds1 sharding.jdbc.config.sharding.default-database-strategy.inline.sharding-column=group_id
sharding.jdbc.config.sharding.default-database-strategy.inline.algorithm-expression=ds$->{group_id
% 2}

#定义tb_deploy_transaction的分表策略,如此处以创建时间的年份和自增id取模2来路由到子表 sharding.jdbc.config.sharding.tables.tb_deploy_transaction.actual-data-nodes=dsKaTeX parse error: Expected group after '_' at position 31: …loy_transaction_̲->{2020…2021}_$->{0…1}
sharding.jdbc.config.sharding.tables.tb_deploy_transaction.table-strategy.complex.sharding-columns=id,gmt_create
sharding.jdbc.config.sharding.tables.tb_deploy_transaction.table-strategy.complex.algorithm-class-name=com.webank.webase.transaction.config.MyComplexShardingAlgorithm
sharding.jdbc.config.sharding.tables.tb_deploy_transaction.key-generator-column-name=id

#定义tb_stateless_transaction的分表策略,如此处以创建时间的年份和自增id取模2来路由到子表 sharding.jdbc.config.sharding.tables.tb_stateless_transaction.actual-data-nodes=dsKaTeX parse error: Expected group after '_' at position 34: …ess_transaction_̲->{2020…2021}_$->{0…1}
sharding.jdbc.config.sharding.tables.tb_stateless_transaction.table-strategy.complex.sharding-columns=id,gmt_create
sharding.jdbc.config.sharding.tables.tb_stateless_transaction.table-strategy.complex.algorithm-class-name=com.webank.webase.transaction.config.MyComplexShardingAlgorithm
sharding.jdbc.config.sharding.tables.tb_stateless_transaction.key-generator-column-name=id

sharding.jdbc.config.props.sql.show=false

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改:
在这里插入图片描述

  1. 服务启停
    返回到dist目录执行:

启动:bash start.sh
停止:bash stop.sh
检查:bash status.sh

备注:服务进程起来后,需通过日志确认是否正常启动,出现以下内容表示正常;如果服务出现异常,确认修改配置后,重启提示服务进程在运行,则先执行stop.sh,再执行start.sh。


Application() - main run success…

  1. 查看日志
    在dist目录查看:
交易服务日志:tail -f log/transaction.log
web3连接日志:tail -f log/web3sdk.log

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值