zoukankan      html  css  js  c++  java
  • Java服务部署规范(内部使用)

    1. 目的

    Java服务在灰度环境和生产环境需要参照此文档进行部署.

    2. 环境准备

    2.1. 安装Java Cryptography Extension (JCE)

    需要在JVM中安装JCE来进行加解密.

    1. 从http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html 下载JCE.
    2. 使用压缩包内的local_policy.jar和US_export_policy.jar替换掉JRE安装路径下的lib/security下面的文件.

    2.2. 准备td-config目录

    2.2.1 准备密钥文件tdkeys.jks

    将生产环境的tdkeys.jks拷贝到/usr/local/software/td-config目录下

    2.2.2. 准备enviroments环境变量文件

    在/usr/local/software/td-config目录下创建enviroments文件, 这个文件内容在灰度环境和生产环境不相同.
    灰度环境:

    SERVICE_LOG_FOLDER=/data/logs
    EUREKA_URL="http://192.168.1.14:21111/eureka"
    

    生产环境:

    SERVICE_LOG_FOLDER=/data/logs
    EUREKA_URL="http://192.168.1.70:21111/eureka,http://192.168.1.71:21111/eureka,http://192.168.1.72:21111/eureka"
    

    2.3. 创建/data/logs目录

    如果目录不存在, 需要创建/data/logs目录, 用来存放日志文件

    3. 安装包

    安装包有4个文件:

    1. 应用jar包, 例如financial-manager-core-1.0-SNAPSHOT.jar
    2. 服务安装文件, 例如financial-manager.service
    3. 服务安装脚本install
    4. 项目配置文件override.properties

    3.1. 应用jar包

    一般由开发提供, 后期可以从CI环境获取.

    3.2. 服务安装文件

    以financial-manager项目为例, 文件名为financial-manager.service, 脚本内容如下:

    [Unit]
    Description=financial-manager service
    After=syslog.target
    
    [Service]
    EnvironmentFile=/usr/local/software/td-config/enviroments
    Type=simple
    ExecStart=/usr/local/java/jdk/bin/java -server -Xms1024m -Xmx1024m -XX:+UseG1GC -verbose:gc -Xloggc:/data/logs/financial_manager_gc.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/logs -jar /usr/local/software/financial-manager/financial-manager-core-1.0-SNAPSHOT.jar --spring.config.location=/usr/local/software/financial-manager/override.properties
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
    

    注意这个文件里的路径必须都为绝对路径. 需要修改的内容:

    1. /usr/local/java/jdk/bin/java: 这是java命令的执行路径, 环境和机器不一样可能导致命令的执行路径不同.
    2. -Xms1024m -Xmx1024m: Java堆内存大小的配置, 最大内存和最小内存应该一样, 具体配置多少根据业务确定.
    3. -Xloggc:/data/logs/financial_manager_gc.log: gc日志文件路径
    4. /usr/local/software/financial-manager/financial-manager-core-1.0-SNAPSHOT.jar: jar包路径.
    5. /usr/local/software/financial-manager/override.properties: 配置文件override.properties路径.

    3.3. 服务安装脚本

    以financial-manager项目为例, 脚本名为install, 脚本内容如下:

    #bash/bin!
    cp financial-manager.service /etc/systemd/system/
    systemctl enable financial-manager.service
    

    3.4. 启动参数文件override.properties

    server.port=9003 #启动端口
    
    logging.level.root=INFO
    logging.level.com.tuandai=INFO
    logging.level.cn.tdw=INFO
    
    spring.application.index=0 #实例编号, 具体见下面解释
    spring.cloud.config.profile=prev #启动环境, prev为灰度环境, prod为生产环境
    
    # 加解密相关
    encrypt.keyStore.location=file:///usr/local/software/td-config/tdkeys.jks
    encrypt.keyStore.password=4DpeZbUL^Xy%KdHm #需要替换为生产环境password
    encrypt.keyStore.alias=tdkey
    encrypt.keyStore.secret=oQ$!3QnXm%&cS%GQ #需要替换为生产环境secret
    

    需要修改的内容:

    1. server.port: 修改启动端口
    2. spring.cloud.config.profile: prev为灰度环境, prod为生产环境
    3. spring.application.index: spring.application.index代表了实例编号, 对于同一个服务, 实例编号需要不同. 假设综合理财需要在192.168.1.70~73部署4个实例, 则spring.application.index需要分别配置为0, 1, 2, 3. 例如192.168.1.70机器上的spring.application.index设置为0, 192.168.1.71机器上的spring.application.index设置为1.
    4. encrypt.keyStore.*: 需要修改为生产环境的密钥配置.

    4. 安装服务

    运行install脚本即可完成安装

    5. 如何运行, 停止, 以及查询服务的运行状态

    systemctl start user-service
    systemctl stop user-service
    systemctl status user-service
    

    6. 示例文件

    示例文件可见附件

  • 相关阅读:
    项目开发基础概念
    django 对接elasticsearch实现全文检索
    win10安装docker
    Mac VMware Fusion 中修改 centos7 虚拟机的磁盘空间、扩容
    CentOS 7下 YUM 本地仓库的搭建
    mac与虚拟机传输文件
    mac和windows快速锁定电脑
    rpm -qa详解
    虚拟机安装centos6
    mac与iPhone互传文件
  • 原文地址:https://www.cnblogs.com/chengjunhao/p/9323221.html
Copyright © 2011-2022 走看看