EI Config Tool 安装和配置手册

本文主要包含EI Config Tool的安装部署和配置手册等。

配置介绍

包含部署的结构和一些集成的配置。

部署结构

本文主要包含web服务的部署和配置。

  • web前端

    • Vue + Ant Design Pro - 前端页面
    • Springboot - 支撑前端的API和后台服务
    • 将上述两部分打包至jar中,所以只有一个jar文件
  • 后端

    • C++相关服务
  • 数据解耦

    • xml文件
    • C++后端可以提供一些即时数据交互的接口

一些配置

相关配置介绍和配置位置,可以看下文场景。

相关配置的参数可以添加在 java -jar 命令的后方, 比如linux下的执行脚本:

java -jar $3 --server.port=9999 --eiconfig.init-xml-path=/opt/EIConfig.xml

xml的配置加载的问题

  • 如何在程序启动时加载指定的默认的xml文件?

程序中给定了eiconfig.init-xml-path配置参数,这个参数主要用来指定程序启动时默认加载的EI Config的xml文件,这个配置是服务器上存放的xml文件的全路径

如果设置了这个参数,程序在启动时会尝试默认加载这个文件。

  • 是否可以在界面上指定xml并进行加载?

可以,已经在界面上方已经实现了相关功能。输入xml全路径,然后点击Load即可完成加载。

修改后保存配置的问题

  • 当配置更改后如何保存到xml文件中?

界面上方添加了Save按钮,在修改配置后点Save,会保存xml至输入的全路径中;

路径的上层文件夹必须是服务器上已经存在的,以防止服务器注入攻击;

路径后面的xml文件名既可以是新的文件名也可以是初始化的已经存在的文件名,如果是新的文件名,会生成新的xml文件,类似备份操作,如果已经存在的文件名,会重新覆盖文件内容。

  • 当配置修改后,如果重启C++后台的服务呢?

程序中给定了eiconfig.cmd-when-save-file的配置参数,如果指定,可以在保存配置文件时自动执行给定的脚本,比如service xxx restart

  • 当配置修改后,能否自动保存至xml文件呢?

可以,程序中给定了eiconfig.auto-save-xml-file-when-update配置参数,默认是false。虽然提供了参数,但是在同时设置了eiconfig.cmd-when-save-file参数时,并不推荐设置为true,因为每次更新操作都会重新执行给定脚本。

在哪里配置

  • windows环境中请在eiconfig.xml中的
<configuration>
	 <!-- 此处为我们的项目名称 -->
      <id>EIConfig</id> 
      <!-- 此处为我们的发布成为系统服务的名称 -->
      <name>EIConfig</name>
      <!-- 此处为我们的发布成为系统服务的描述 -->
      <description>Easy Intergration Config Tool</description>
      <!-- 指定JAVA -->
      <executable>java</executable>
      <!-- 在这里修改 -->
      <arguments>-Xrs -Xmx512m -jar eiconfig.jar --server.port=9999 --eiconfig.init-xml-path=C:/EIConfig.xml</arguments>
      <logmode>rotate</logmode>
</configuration>
1
2
3
4
5
6
7
8
9
10
11
12
13
  • linux 环境中请在eiconfig文件中修改
function svcStart()
{
  echo "Starting $2 ..."
  cd $1
  PID=$(ps -ef | grep "$4" | grep -v grep | awk '{print $2}')
  if [ -z "$PID" ]; then
	  nohup java -jar $3 --server.port=9999 --eiconfig.init-xml-path=/opt/EIConfig.xml > $5 2> $6 &
    serviceLoad $SERVICE_NAME
	  echo "$2 started ..."
  else
	  echo "$2 is already running ..."
  fi
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14

Windows 平台安装和配置

windows平台的安装基于.NET4 和Java环境,所以需要先检查相关环境。

环境检查

  • 检查是否安装jdk, 如果没有的话去官网下载JDK进行安装;在cmd 输入java -version,如果返回Java版本号,即表示已经安装了jdk。通常我们的CAT机都会预装JDK环境的。
C:\Users\Z003MRZB>java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
1
2
3
4
  • 检查是否有.NET 4的环境

windows大多是自带了.NET 。

安装和运行

  • 获得如下三个安装文件,(蓝色背景的三个,其它是运行之后的日志文件和启动脚本,由于启动脚本对windows环境有一定的依赖,所以你可以不用脚本安装)

  • 安装EIConfig服务, 这里我的目录是C:\Users\Z003MRZB\Desktop\ei\

通过cmd 运行 目录\eiconfig.exe install

C:\Users\Z003MRZB>C:\Users\Z003MRZB\Desktop\ei\eiconfig.exe install
2020-09-20 15:22:59,614 INFO  - Installing the service with id 'EIConfig'
1
2

上述操作,表示我在window中安装了一个EIConfig的服务。

  • 启动EIConfig服务

打开服务管理

启动服务

过1分钟以后,打开网页http://localhost:9999

卸载EIConfig

  • 同上一步,stop EIConfig

  • cmd 下执行uninstall命令

C:\Users\Z003MRZB>C:\Users\Z003MRZB\Desktop\ei\eiconfig.exe uninstall
2020-09-20 16:08:38,409 INFO  - Uninstalling the service with id 'EIConfig'
1
2

版本更新

后续可能还会涉及到功能的更新

  • 只需要替换jar包,然后重启EIConfig即可。

Linux 平台安装和配置

我们制作一个eiconfig-web的服务,这样我们可以使用标准的服务方式进行status/start/stop/restart(不同Linux环境略有差别,比如centos7可以用systemctl start eiconfig-web);并且设置为开机自启动。

安装文件拷贝

  • /opt下创建EIConfig文件夹,将如下内容拷贝至这个文件夹

    • bin/eiconfig.jar - 这个是web服务,包含了web的前后端
    • eiconfig - 这个是启动脚本,启动参数配置在这个文件中
  • /var/log下创建/EIConfig/process文件夹

    • 程序处理的日志会保存到这里
  • 将如下文件拷贝至/etc/init.d这个文件夹

    • eiconfig-web - 这个就是我们自定义的服务, 包含了status/start/stop/restart服务命令

服务配置和启动

  • 赋予权限
sudo chmod 777 /etc/init.d/eiconfig-web
1
  • 启动服务
sudo service eiconfig-web start
1
  • 开机自启
chkconfig --list
chkconfig eiconfig-web on
1
2
  • 查看端口, 服务默认绑定在9999端口
netstat -nltp
1
  • 查看防火墙,不要屏蔽了
systemctl status firewalld
1

版本更新

后续可能还会涉及到功能的更新

  • 只需要替换bin下的jar包,然后重启eiconfig-web即可。

联系我

添加@pdai微信

PS:添加时请备注Java全栈,谢谢!