第三方支付系统简易版支付系统部署



[align=center]第三方支付系统简易版支付系统部署[/align]
[img=http://img.bbs.csdn.net/upload/201603/29/1459234578_46213.jpg][/img]


一、前期准备
1、MySQL数据库的安装:MySQL-5.6.22,自行安装
2、Dubbo视频教程--基础篇--第03节--ZooKeeper注册中心安装
3、Dubbo视频教程--基础篇--第06节--Dubbo管理控制台的安装
4、Dubbo视频教程--基础篇--第10节--Dubbo监控中心的介绍与简易监控中心的安装
5、持续集成管理平台(SVN、Nexus、Maven、Hudson)的安装:
Dubbo视频教程--基础篇--第11节至18节 
6、Dubbo视频教程--高级篇--第21节--ActiveMQ的安装与使用
7、Dubbo视频教程--高级篇--第22节--Redis的安装与使用
8、Dubbo视频教程--高级篇--第23节--FastDFS分布式文件系统的安装与使用


二、对部署环境进行规划 


[img=http://img.bbs.csdn.net/upload/201603/29/1459234928_530400.jpg][/img]


创建数据库
数据库编码为:UTF-8
数据库引擎为:InnoDB
导入“基于Dubbo的分布式系统架构视频教程--简易版支付系统源码.rar”中的
“数据库--edu_simple_pay.rar”中的“edu_simple_pay.sql”
调整公共配置文件


 [img=http://img.bbs.csdn.net/upload/201603/29/1459234885_575434.jpg][/img]


应用部署前期准备
1、common工程构建、发布到Maven私有库


 [img=http://img.bbs.csdn.net/upload/201603/29/1459235094_730811.jpg][/img]


尤其注意pay-common-config工程的构建(配置文件修改后需要重新构建,引用处也要重新构建)
2、facade工程构建、发布到Maven私有库


[img=http://img.bbs.csdn.net/upload/201603/29/1459235291_265651.jpg][/img]


部署服务
1、规划好服务部署目录,准备好服务管理脚本


 [img=http://img.bbs.csdn.net/upload/201603/29/1459235172_27135.jpg][/img]


/home/wusc/edu/service/account/service-account.sh
#!/bin/sh
## java env
export JAVA_HOME=/usr/local/java/jdk1.7.0_72
export JRE_HOME=$JAVA_HOME/jre
## you just need to change this param name
APP_NAME=account
SERVICE_DIR=/home/wusc/edu/service/$APP_NAME
SERVICE_NAME=pay-service-$APP_NAME
JAR_NAME=$SERVICE_NAME\.jar
PID=$SERVICE_NAME\.pid
cd $SERVICE_DIR
case "$1" in
    start)
        nohup $JRE_HOME/bin/java -Xms128m -Xmx512m -jar $JAR_NAME >/dev/null 2>&1 &
        echo $! > $SERVICE_DIR/$PID
        echo "=== start $SERVICE_NAME"
        ;;
    stop)
        kill `cat $SERVICE_DIR/$PID`
        rm -rf $SERVICE_DIR/$PID
        echo "=== stop $SERVICE_NAME"
        sleep 5
        P_ID=`ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk '{print $2}'`
        if [ "$P_ID" == "" ]; then
            echo "=== $SERVICE_NAME process not exists or stop success"
        else
            echo "=== $SERVICE_NAME process pid is:$P_ID"
            echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"
            kill -9 $P_ID
        fi
        ;;
    restart)
        $0 stop
        sleep 2
        $0 start
        echo "=== restart $SERVICE_NAME"
        ;;
    *)
        ## restart
        $0 stop
        sleep 2
        $0 start
        ;;
esac
exit 0


2、使用Hudson来自动化部署服务


 [img=http://img.bbs.csdn.net/upload/201603/29/1459235407_300353.jpg][/img]


3、通过Dubbo管控台检查各服务是否都部署成功


 [img=http://img.bbs.csdn.net/upload/201603/29/1459235428_129320.jpg][/img]


部署Web应用
1、规划好Web应用部署目录、端口、脚本


 [img=http://img.bbs.csdn.net/upload/201603/29/1459235448_155593.jpg][/img]


bank-receive-tomcat     8081
boss-tomcat             8082
gateway-tomcat          8083
notify-receive-tomcat   8084
portal-tomcat           8085
shop-tomcat             8086
trade-tomcat            8087


/home/wusc/edu/web/bank-receive-tomcat/restart.sh
## java env
export JAVA_HOME=/usr/local/java/jdk1.7.0_72
export JRE_HOME=$JAVA_HOME/jre
## restart tomcat
current_dir=$(cd `dirname $0`; pwd)
echo "=== current_dir is:$current_dir"
$current_dir/bin/shutdown.sh
sleep 3
rm -rf $current_dir/webapps/*/
sleep 2
$current_dir/bin/startup.sh


部署APP


 [img=http://img.bbs.csdn.net/upload/201603/29/1459235477_52978.jpg][/img]


/home/wusc/edu/app/queue-notify/app-queue-notify.sh
#!/bin/sh
## java env
export JAVA_HOME=/usr/local/java/jdk1.7.0_72
export JRE_HOME=$JAVA_HOME/jre
## you only need to change next two parameters value
APP_DIR=/home/wusc/edu/app/queue-notify
APP_NAME=pay-app-queue-notify
JAR_NAME=$APP_NAME\.jar
cd $APP_DIR
## check app process weather exists
process=`ps aux | grep -w "$APP_NAME" | grep -v grep`
if [ "$process" == "" ]; then
    echo "=== $APP_NAME process not exists"
else
    echo "=== $APP_NAME process exists"
    echo "=== $APP_NAME process is : $process"
    ## get PID by process name
    P_ID=`ps -ef | grep -w "$APP_NAME" | grep -v "grep" | awk '{print $2}'`
    echo "=== $APP_NAME process PID is:$P_ID"
    echo "=== begin kill $APP_NAME process"
    kill $P_ID
    sleep 3
    P_ID=`ps -ef | grep -w "$APP_NAME" | grep -v "grep" | awk '{print $2}'`
    if [ "$P_ID" == "" ]; then
        echo "=== $APP_NAME process stop success"
    else
        echo "=== $APP_NAME process kill failed, PID is:$P_ID"
        echo "=== begin kill -9 $APP_NAME process, PID is:$P_ID"
        sleep 3
        kill -9 $P_ID
    fi
fi
sleep 2
echo "=== begin start $APP_NAME"
$JRE_HOME/bin/java -Xms128m -Xmx512m -jar $APP_DIR/$JAR_NAME >/dev/null 2>&1 &


部署定时任务
定时任务的部署与调用分离


[img=http://img.bbs.csdn.net/upload/201603/29/1459235732_18847.jpg][/img]
[img=http://img.bbs.csdn.net/upload/201603/29/1459235743_767994.jpg][/img]
[img=http://img.bbs.csdn.net/upload/201603/29/1459235451_868345.jpg][/img] 


/home/wusc/edu/timer/report/timer-report.sh
#!/bin/sh
## java env
export JAVA_HOME=/usr/local/java/jdk1.7.0_72
export JRE_HOME=$JAVA_HOME/jre
## you only need to chage next two line value
SERVICE_DIR=/home/wusc/edu/timer/report
APP_NAME=pay-timer-report
JAR_NAME=$APP_NAME\.jar
sleep 1
echo "=== invoke task, please wait"
$JRE_HOME/bin/java -jar $SERVICE_DIR/$JAR_NAME >/dev/null 2>&1 &
## until process stop to print log
while true
do
   process=`ps aux | grep $APP_NAME | grep -v grep`;
   if [ "$process" == "" ]; then
        sleep 1;
        echo "=== task complete";
        sleep 3;
        break;
   else
        echo "=== process is running, please wait";
        sleep 10;
        continue;
   fi
done


本文出自[url=http://www.roncoo.com/]《基于Dubbo分布式系统架构视频教程》[/url]中的课程文档



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个简易的支付系统架构设计可以包括以下组件: 1. 用户界面:提供给用户使用的界面,例如网页或移动应用程序,用户可以在这里选择商品或服务,并发起支付请求。 2. 订单管理:负责处理用户提交的订单信息,包括生成唯一的订单号、计算订单金额等。 3. 支付网关:连接支付系统第三方支付平台(如支付宝、微信支付等),负责将支付请求发送到支付平台,并接收支付结果返回。支付网关需要提供安全可靠的通信通道和数据加密功能。 4. 交易处理:接收支付网关返回的支付结果,根据支付结果更新订单状态,并进行相应的处理,例如发货、生成电子凭证等。 5. 支付日志与对账:记录支付系统的交易日志,包括支付请求、支付结果等信息,用于后期对账和问题排查。 6. 数据库:存储用户信息、订单信息、交易记录等数据,确保数据的安全性和可靠性。 7. 安全与风控:实施必要的安全措施,例如用户身份验证、交易风险评估等,以保障支付系统的安全性和可信度。 8. 结算系统:管理支付系统与商户之间的结算流程,根据交易记录计算应付给商户的金额,并进行结算操作。 需要注意的是,这只是一个简易的支付系统架构设计,实际的支付系统可能会更加复杂,涉及到更多的功能和模块。具体的设计还需要根据实际需求和业务场景进行调整和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值