关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

第三方支付系统开发教程

发布时间:2020-11-13 19:26:33

第三方支付系统开发教程图解。这是在本地做演示的。

  简易版支付系统部署(单节点)

  

A1.png

 

  一、前期准备

  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分布式文件系统的安装与使用

  二、对部署环境进行规划

  

A2.png

 

  创建数据库

  数据库编码为:UTF-8

  数据库引擎为:InnoDB

  导入“基于Dubbo的分布式系统架构视频教程--简易版支付系统源码.rar”中的

  “数据库--edu_simple_pay.rar”中的“edu_simple_pay.sql”

  调整公共配置文件

  

A3.png

 

  应用部署前期准备

  1、common工程构建、发布到Maven私有库

  

A4.png

 

  尤其注意pay-common-config工程的构建(配置文件修改后需要重新构建,引用处也要重新构建)

  2、facade工程构建、发布到Maven私有库

  

A5.png

 

  部署服务

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

  

A6.png

 

代码如下:

  /home/wusc/edu/service/account/service-account.sh

  #!/bin/sh

  ## java env

  exportJAVA_HOME=/usr/local/java/jdk1.7.0_72

  exportJRE_HOME=$JAVA_HOME/jre

  ## you justneed 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_NAMEprocess not exists or stop success"

  else

  echo "=== $SERVICE_NAMEprocess 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来自动化部署服务

  

A7.png

 

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

  

A8.png

 

  部署Web应用

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

  

A9.png

 

代码如下:

  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

  exportJAVA_HOME=/usr/local/java/jdk1.7.0_72

  exportJRE_HOME=$JAVA_HOME/jre

  ## restarttomcat

  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

  

A10.png

代码如下:

  /home/wusc/edu/app/queue-notify/app-queue-notify.sh

  #!/bin/sh

  ## java env

  exportJAVA_HOME=/usr/local/java/jdk1.7.0_72

  exportJRE_HOME=$JAVA_HOME/jre

  ## you onlyneed 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 appprocess weather exists

  process=`ps aux| grep -w "$APP_NAME" | grep -v grep`

  if ["$process" == "" ]; then

  echo "=== $APP_NAME process notexists"

  else

  echo "=== $APP_NAME processexists"

  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 PIDis:$P_ID"

  echo "=== begin kill $APP_NAMEprocess"

  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 stopsuccess"

  else

  echo "=== $APP_NAME process killfailed, PID is:$P_ID"

  echo "=== begin kill -9 $APP_NAMEprocess, 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 &

  部署定时任务

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

  

A11.png

 

  

A12.png

 

  

A13.png

 

  /home/wusc/edu/timer/report/timer-report.sh

  #!/bin/sh

  ## java env

  exportJAVA_HOME=/usr/local/java/jdk1.7.0_72

  exportJRE_HOME=$JAVA_HOME/jre

  ## you onlyneed 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 &

  ## untilprocess stop to print log

  while true

  do

  process=`ps aux | grep $APP_NAME | grep -vgrep`;

  if [ "$process" == "" ];then

  sleep 1;

  echo "=== task complete";

  sleep 3;

  break;

  else

  echo "=== process is running,please wait";

  sleep 10;

  continue;

  fi

  done



/template/Home/D8Cloud/PC/Static