# FS服务部署

# 安装JDK环境

参阅 安装JDK环境

# 创建目录

mkdir /cslc/fs
mkdir /cslc/fs/logs

unitid-fs.jar文件 放入 /cslc/fs 目录

# 服务脚本

cd /cslc/fs
vi run.sh

脚本内容:

#!/bin/sh

APP_PATH=/cslc/fs
API_NAME=unitid-fs
JAR_NAME=$API_NAME\.jar
#PID  代表是PID文件
PID=application\.pid


cd $APP_PATH

#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
    exit 1
}

#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $JAR_NAME|grep -v grep|awk '{print $2}' `
  #如果不存在返回1,存在返回0
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}

#启动方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> ${JAR_NAME} is already running PID=${pid} <<<"
  else
    # ** 这里根据实际情况配置 8G系统内存建议配置 -Xms6g -Xmx6g
    nohup java -XX:+UseG1GC -Xms6g -Xmx6g -Dspring.profiles.active=production -Dspring.config.location=$APP_PATH/application.yml -Duser.timezone=GMT+8 -Djava.security.egd=file:/dev/./urandom  -jar $JAR_NAME >/dev/null 2>&1 &
    echo $! > $PID
    echo ">>> start $JAR_NAME successed PID=$! <<<"
   fi
  }

#停止方法
stop(){
  #is_exist
  pidf=$(cat $PID)
  #echo "$pidf"
  echo ">>> api PID = $pidf begin kill $pidf <<<"
  kill $pidf
  rm -rf $PID
  sleep 2
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> api 2 PID = $pid begin kill -9 $pid  <<<"
    kill -9  $pid
    sleep 2
    echo ">>> $JAR_NAME process stopped <<<"
  else
    echo ">>> ${JAR_NAME} is not running <<<"
  fi
}

#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> ${JAR_NAME} is running PID is ${pid} <<<"
  else
    echo ">>> ${JAR_NAME} is not running <<<"
  fi
}

#重启
restart(){
  stop
  start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac
exit 0

** 可修改其中 -Xms6g -Xmx6g 参数调整jvm内存

根据实际情况配置 8G系统内存建议配置 -Xms6g -Xmx6g

使用chmod +x run.sh授予可执行权限

# 配置

进入配置目录 cd /cslc/fs

新建配置文件 vi application.yml

填写配置项:

server:
  # ** 启动端口
  port: 20128
  undertow:
    # 最大上传文件大小 100M
    max-http-post-size: 104857600

# 日志配置

logging:
  level:
    root: INFO
  # ** 日志配置
  file: /cslc/fs/logs/fs.log


management:
  security:
    enabled: false

endpoints:
  shutdown:
    # 启用shutdown
    enabled: true
    # 禁用密码验证
    sensitive: false
  # CORS 配置
  cors:
    # 允许的来源
    allowed-origins:
    - '*'
    # 允许的方法
    allowed-methods:
    - GET
    - POST
    - PUT
    - DELETE
    - OPTIONS
    exposed-headers:
    - DNT
    - Keep-Alive
    - User-Agent
    - X-Requested-With
    - If-Modified-Since
    - Cache-Control
    - Content-Type
#    allow-credentials: true

spring:
  application:
    # 项目名称
    name: fs
  profiles.active: production
  aop.proxy-target-class: true
  http:
    multipart:
      enabled: true
      # 最大上传文件大小 100M
      max-file-size: 100MB
      # 最大请求大小 100M
      max-request-size: 100MB
  # JSON 序列化配置
  jackson:
    serialization:
      WRITE_DATES_AS_TIMESTAMPS: true
    default-property-inclusion: non_null
  data:
    mongodb:
      # 请填写mongodb数据库名字
      database: mongo_cslc_fs
      # ** 请填写mongodb数据库连接地址
      uri: mongodb://admin:Smart@172.27.20.156:27017,172.27.20.157:27017,172.27.20.158:27017/admin


# Mongodb 配置
mongo:
  socketTimeout: 30000
  connectTimeout: 5000
  maxWaitTime: 5000
  maxConnectionsPerHost: 20
  minConnectionsPerHost: 3
  readConcern: majority
  writeConcern: majority
  readPreference: primaryPreferred

mongodb:
  regions:
    njjn:
      # ** 请填写mongodb数据库连接地址
      uri: mongodb://admin:Smart@172.16.3.151:27017,172.16.3.151:27018,172.16.3.151:27019/admin
      socketTimeout: 15000
      connectTimeout: 3000
      maxWaitTime: 5000
      maxConnectionsPerHost: 20
      minConnectionsPerHost: 3
      readConcern: majority
      writeConcern: majority
      readPreference: primaryPreferred


#加密相关配置
encryption:
  econtract:
    # 是否启用加密
    enable: true
    # 密钥名称
    name: FS
    #  ** 电子合同地址
    baseUrl: http://172.16.3.228:8600
    # 电子合同内部接口鉴权token
    authToken: 123456

auth:
  # 管理员拦截路径
  routes[0]:
    uri: /bizadmin/**
    type: admin
  jwt-header: Authorization
  # 信息获取模式
  fetch: rest
  # 电子合同用户权限接口
  userInfo.authoritiesUri: ${encryption.econtract.baseUrl}/internal/auth/authorities?authToken=${encryption.econtract.authToken}
  # ** 公钥
  public-key: |
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAti4oeGwnVmlWyWEYsAr3pnDvvadGP3rl
    BM6M34e6QZSxHxlNZxpHaMzWcRxjkqKJEL8MTfD/r0oUjFmFPenqnXUZIIkwOWgNI3lOIrC6QSMa
    IY6/a8khEwQrm4mA0FABUHtEtpv/gi7SNK60KYlao2iAXFm65MLn5OxSJrec3a0G8XOkKLGTDfCa
    Ky90HalrydqUJG+N6t+tXhnVCeZ+yKKuX/KN0NyiqumaJO9SvQz+UmDhCdhdaLL6ilZgzqCEmtvo
    Oo4pgUC0ao9s5j1WP/mLn1i//9EoVCN0iQ60Hdjl+8KzQ3srONjO49Azl5qoEiEecop7NnUrNC8C
    5Ct/RQIDAQAB
  audit:
    # true 开启审计日志
    enabled: true
    routes[0]:
      uri: /bizadmin/**
    uri: ${encryption.econtract.baseUrl}/internal/audit/operation-log?authToken=${encryption.econtract.authToken}


# 命令

启动

./run.sh start

停止

./run.sh stop

重启

./run.sh restart

检查运行状态

./run.sh status
最后更新于: 11/4/2020, 10:14:18 PM