以xbank項目做為應用背景,簡單說明一下Maven項目的部署方案:
1、項目說明
xbank基礎服務端的11個子項目均采用Maven搭建:
其中各項目功能設計如下:
froad-xbank-server-api:提供web端對外調用接口
froad-xbank-server-base:基礎部分嗎
froad-xbank-server-common:server端公共類
froad-xbank-server-core:核心服務
froad-xbank-server-filter-api:core調用filter端的接口
froad-xbank-server-filter-taizhou:銀行適配器服務
froad-xbank-server-handler:數據庫映射層
froad-xbank-server-manager-api:管理平台api接口
froad-xbank-server-manager:管理平台服務
froad-xbank-server-task:定時器服務
froad-xbank-server-transfer:數據遷移服務
因maven項目開發時依賴公司中央倉庫或本地倉庫,故工程在服務器獨立部署運行時,需將工程打包並提取依賴包,建立對應目錄存放配置文件。
Maven項目提取依賴包的方法:
工程打包使用maven的package命令;提取工程依賴包,可選中工程右鍵àrun asàMaven build…àEdit Configuration窗口的Goals命令行輸入以下命令:
dependency:copy-dependencies -DoutputDirectory=./lib -DincludeScope=runtime
執行該命令時,會在工程根目錄下創建lib目錄用於存放所依賴jar包。
2、項目部署
部署到應用服務器時,應生成如下目錄結構:(以xbank_core核心為例)
所有應用均部署在/data/tz_xbank/目錄下
|----/data/tz_xbank/xbank_core
|--------startup.sh文件: 應用啟動腳本
|--------shutdown.sh文件: 應用停止腳本
|--------lib目錄: 存放依賴的jar包
|--------app目錄: 存放模塊應用的jar
|--------config目錄:存放各個配置文件
|------------init.properties文件: 模塊初始配置文件, 主要配置監聽端口, 日志存放目錄
|------------jdbc_taizhou.properties文件: 配置MySQL數據庫(采用mycat代理)的連接信息
|------------logConfig.xml文件: 日志系統相關配置
|------------redis.properties文件: 配置redis緩存連接信息
|------------thrift.properties文件: server后台各個模塊thrift接口互相調用的地址信息
|------------client_id_list.xml文件: 銀行標識配置表
所有日志均在(由之前提到的init.properties中配置)
啟動腳本startup.sh:
#!/bin/sh print_green () { echo -e "\033[1;32;48m$1 \033[0m";} #綠色字 print_yellow () { echo -e "\033[1;33;48m$1 \033[0m";} #黃色字 JAVA_HOME=/usr/local/jdk1.6.0_45 PATH=$JAVA_HOME/bin:$PATH JRE_HOME=$JAVA_HOME/jre export JAVA_HOME PATH JRE_HOME java -version DIR=`dirname $0` cd $DIR DIR=`pwd` echo ============================= echo $DIR echo APP: $DIR/app/*.jar echo ============================= ps -ef|grep $DIR|grep -v grep|grep -v startup.sh >/dev/null 2>&1 if [ $? -ne 0 ];then nohup java -Djava.rmi.server.hostname=10.24.248.215 -Dcom.sun.management.jmxremote.port=9006 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Xms256m -Xmx1024m -XX:-UseGCOverheadLimit -XX:PermSize=32M -XX:MaxPermSize=128M -cp $DIR/lib/*:app/froad-xbank-server-filter-taizhou-0.0.1-SNAPSHOT.jar com.froad.thrift.XbankFilterMain > logs/xbank-filter.log 2>&1 & echo "Start output to logs/xbank_filter.log" PID=`ps -ef|grep $DIR|grep -v grep|awk '{print $2}'` print_green "PID: $PID" else PID=`ps -ef|grep $DIR|grep -v grep|awk '{print $2}'` print_yellow "already started PID: $PID" fi
停止腳本shutdown.sh:
#!/bin/sh print_green () { echo -e "\033[1;32;48m$1 \033[0m";} #綠色字 print_yellow () { echo -e "\033[1;33;48m$1 \033[0m";} #黃色字 DIR=`dirname $0` cd $DIR pwd DIR=`pwd` PID=`ps -ef|grep $DIR|grep -v grep|grep -v shutdown.sh|awk '{print $2}'` if [ -n "$PID" ];then echo $PID kill -9 $PID >/dev/null 2>&1 sleep 1 ps -ef|grep $DIR|grep -v grep|grep -v shutdown.sh >/dev/null 2>&1 if [ $? -ne 0 ];then print_green "Shutdown $DIR success!!!" exit 0 else print_yellow "Shutdown $DIR fail!!!" exit 1 fi else print_green "$DIR already shutdown!!!" exit 1 fi
按以上結構部署完之后,給相應的啟動腳本(startup.sh)和停止腳本(shutdown.sh)添加執行權限:
chmod a+x *.sh即可。