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

一、前期准备

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

二、对部署环境进行规划

创建数据库

数据库编码为:UTF-8

数据库引擎为:InnoDB

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

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

调整公共配置文件

应用部署前期准备

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

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

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

部署服务

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

/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来自动化部署服务

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

部署Web应用

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

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

/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 &

部署定时任务

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

/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

本方出自龙果学院基于Dubbo的分布式系统架构视频教程

教程基于真实第三方支付项目的系统架构实战经验,最终形成一套分布式系统架构技术解决方案。

公开视频下载地址:http://pan.baidu.com/s/1qWXhuEC

整套教程下载地址:http://pan.baidu.com/s/1jHutZIQ  提取密码: 8iyv

 

时间: 2024-08-06 19:54:12

简易版支付系统部署(单节点) 吴水成的相关文章

Dubbo高级篇教程--支付系统开发 之 简易版支付系统部署(单节点)

一.前期准备 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节

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

一.前期准备 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节

使用packstack以answer-file的方式部署单节点openstack环境

原来是使用packstack --init-host=myip的方式部署,这样只能是单节点 http://blog.csdn.net/xiangpingli/article/details/51239832 为了使用packstack进行多节点的方式部署openstack,就需要先研究answer-file的方式来部署openstack环境 如下是使用packstack --answer-file的方式部署单节点openstack环境的过程: Packstack –answer-file方式部署

007 Ceph手动部署单节点

前面已经介绍了Ceph的自动部署,本次介绍一下关于手动部署Ceph节点操作 一.环境准备 一台虚拟机部署单节点Ceph集群 IP:172.25.250.14 内核: Red Hat Enterprise Linux Server release 7.4 (Maipo) 磁盘:/dev/vab,/dev/vac,/dev/vad 二.部署mon 2.1 安装Ceph软件包 [root@cepe5 ~]#  yum install -y ceph-common ceph-mon ceph-mgr c

Kubernetes部署单节点和多节点重点

目录 前言 一.所有节点安装docker 二.所有节点安装kubeadm 三.安装master节点 四.部署网络插件 五.安装node节点 前言 这里使用环境:Ubuntu 18.04,以下所有操作都在root用户下进行 其实kubenetes安装非常核心的几步就是 安装docker 安装kubeadm 通过kubeadm init创建master节点 安装master的网络插件 通过kubeadm join添加node节点 一.所有节点安装docker export LC_ALL=C apt-

mongodb部署单节点(一)

部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(360云盘下载地址:https://yunpan.cn/cPgTGfXsmhHNw  提取码 dbf7) 第一步:上传该文件至linux服务器上 第二步:解压缩该文件 命令为tar zxvf mongodb-linux-x86_64-rhel55-3.0.2.tgz 第三步:将解压得到的文件夹mongodb-linux-x86_64-rhel55-3.0.2,改名为mongodb_3.0.2 第四步:进入mong

支付系统架构--简易版支付系统介绍

  工程结构 pay-common-parent      项目的Maven父配置工程 pay-common             公共工程,所有项目均可引用 pay-common-config      公共配置工程 pay-common-core        公共核心工程,service工程共用 pay-common-web         公共web工程,web工程共用 pay-api-merchant       商户API工程,商户对接支付平台时使用(如:模拟商城pay-web-s

手机网站和App如何接入支付宝简易版支付功能PHP版

接入支付宝准备工作:(关于账号可以是个体商户也可以是企业账号但必须有营业执照) 1.登录蚂蚁金服开放平台  2.创建应用,应用分类网页应用和移动应用.应用提交审核审核通过后得到Appid才能调用相应的接口权限 3.添加功能:一般有扫码付,电脑网站支付,手机网站支付,APP支付.看你的需求什么.移动应用选择APP支付或者是扫码付,而网页应用分为移动端和PC端. 4.商户签约 需要提交相关的资料 一般是要求你提供你的网站地址和APP包等要求 按照支付宝要求来签约相关的支付功能 5.配置你的应用开发配

packstack工具部署单节点的openstack虚拟服务

首先介绍一个网站 https://www.rdoproject.org/install/quickstart/ 本文档介绍了安装 Mitaka release openstack, packstack快速入门 Packstack是一个安装工具,让你旋转的云概念的证明在一个节点.你可以添加更多的节点,你的OpenStack云之后,如果你选择. 如果你正在寻找如何部署生产就绪的云,看tripleo快速入门. 如果你想要尝试OpenStack没有安装任何东西,看看TryStack. 以下文档摘抄自我录