• Maven项目部署方案


    以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 "33[1;32;48m$1 33[0m";} #绿色字
    print_yellow () { echo -e "33[1;33;48m$1 33[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 "33[1;32;48m$1 33[0m";} #绿色字
    print_yellow () { echo -e "33[1;33;48m$1 33[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即可。

  • 相关阅读:
    Django框架(二)
    USACO 2019 December Contest 随记
    Codeforces 1249E By Elevator or Stairs? 题解
    NIKKEI Programming Contest 2019-2 D 部分分题解
    Codeforces 1196D2 RGB Substring (Hard version) 题解
    HDU5943 Kingdom of Obsession 题解
    智能账单统计软件开发日志3 图像比对算法
    Codeforces #536 A..D 题解
    智能账单统计软件开发日志2 图像形态优化
    智能账单统计软件开发日志1 立项与环境配置
  • 原文地址:https://www.cnblogs.com/shindo/p/5300663.html
Copyright © 2020-2023  润新知