# Windows快速安装指南
说明:本文介绍最快捷的安装方式,但对安装介质的路径有强制要求,且EOS8依赖的工具均直接使用介质包内提供的工具。
# 环境准备
硬件配置要求
硬件 说明 CPU 主频2.0GHz以上 内存 8GB以上 硬盘 50G 以上。安装目录空间 20GB 以上。 软件配置要求
软件 说明 JDK JDK需要自行安装,推荐OracleJDK 1.8.0_162。 node 推荐node V10,npm 6.9 MySQL 使用安装包自带MySQL 操作系统 Windows 7/10/11 64位 VC++
MySQL需要VC++环境,请自行下载安装 VC++ (opens new window)。
# 下载并解压安装介质
下载介质
下载EOS_Platform_8.3.3_Private_Medium_Develop.zip
解压介质
注意:务必将介质解压到D:\primeton\eos-8.3-dev
目录。
因为此版本是绿色版本,内置的绝对路径配置在此目录,解压缩到此目录可以避免额外的参数配置操作。
如果需要自定义安装目录,请参考path_custom.md
介质的结构介绍
安装介质中包含开发环境所需的IDE、Maven、nacos、nginx、redis、repository及前后端应用,具体目录如下:eos-8.3-dev │ ├── ide 集成开发环境 │ ├── eclipse Studio开发工具 │ ├── workspace Studio默认工作空间 │ └── settings.xml maven配置文件 │ ├── maven maven目录 │ ├── mysql mysql5.7数据库 │ ├── nacos nacos应用目录 │ ├──bin │ │ ├── startup.cmd nacos应用启动脚本 │ │ └── shutdown.cmd nacos应用停止脚本 │ └──conf nacos配置文件目录 │ ├── nginx │ ├── conf │ │ └── nginx.conf nginx主配置文件 │ ├── startup.cmd nginx应用启动脚本 │ └── shutdown.cmd nginx应用停止脚本 │ ├── redis │ ├── redis.windows.conf redis应用配置文件 │ ├── startup.cmd redis应用启动脚本 │ └── shutdown.cmd redis应用停止脚本 │ ├── repository maven仓库 │ ├── server 应用目录 │ ├── bps bps流程引擎目录 │ │ ├── bin │ │ │ ├── startup.cmd bps应用启动脚本 │ │ │ └── shutdown.cmd bps应用停止脚本 │ │ ├── config bps配置文件目录 │ │ ├── db-scripts bps-db脚本目录 │ │ └── *.jar bps应用jar包 │ │ │ ├── afcenter afcenter应用目录 │ │ ├── bin │ │ │ ├── startup.cmd afcenter应用启动脚本 │ │ │ └── shutdown.cmd afcenter应用停止脚本 │ │ ├── config afcenter配置文件目录 │ │ ├── db-scripts afcenter,bfp,eos,lowcode脚本目录 │ │ ├── lib 数据库驱动包及第三方补丁 │ │ └── *.jar afcenter应用jar包 │ │ │ ├── gateway 网关应用目录 │ │ ├── bin │ │ │ ├── startup.cmd gateway应用启动脚本 │ │ │ └── shutdown.cmd gateway应用停止脚本 │ │ ├── config gateway配置文件目录 │ │ └── *.jar gateway应用jar包 │ │ │ ├── governor governor应用目录 │ │ ├── bin │ │ │ ├── startup.cmd governor应用启动脚本 │ │ │ └── shutdown.cmd governor应用停止脚本 │ │ ├── config governor配置文件目录 │ │ ├── db-scripts governor-db脚本目录 │ │ ├── app-db-scripts bps-db、eos-db脚本目录 │ │ └── *.jar governor应用jar包 │ │ ├── source 源码目录 │ ├── afcenter-ui afcenter前端源码 │ └── afcenter afcenter后端源码 │ ├── bfp-ui bfp前端源码 │ └── bfp bfp后端源码 │ │ ├── web 前端资源目录 │ ├── afcenter afcenter前端静态资源 │ └── conf nginx配置文件目录
# 安装运行环境
运行环境所需工具,介质内均已提供,对应端口如下:
应用 | 说明 | 默认端口 |
---|---|---|
mysql 服务 | 数据库服务 | 3306 |
nacos 应用 | 配置中心,注册中心 | 8848 |
nginx 应用 | 代理服务器 | 80 |
redis 服务 | 缓存服务器 | 6379 |
governor | governor管理平台 | 29898 |
gateway | 网关应用 | 9090 |
bps | 流程平台 | 48084 |
afcenter 应用 | 基础平台应用 | 28083 |
# 配置MySQL
快速安装时,使用介质内提供的工具,则仅配置MySQL即可。配置步骤如下:
说明:如果您使用自定义的数据库服务,请按照此文档修改相关配置。
在
D:\primeton\eos-8.3-dev\mysql\my.ini
配置文件中,添加max_allowed_packet=100M
,配置允许传送最大数据包。添加后的my.ini
文件如下:[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置MySQL的端口 port = 3306 # 设置mysql的安装目录 basedir=d:/primeton/eos-{{book.default_catalog}}-dev/mysql # 设置mysql的数据目录 datadir=d:/primeton/eos-{{book.default_catalog}}-dev/mysql/data # 允许最大连接数 max_connections=2000 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' # skip-grant-tables # 允许传送最大数据包 max_allowed_packet=100M
以管理员权限运行CMD,
新建一个供EOS8使用的MySQL服务
。cd D:\primeton\eos-{{book.default_catalog}}-dev\mysql\bin mysqld -install 自定义MySQL服务名 --defaults-file="D:\primeton\eos-{{book.default_catalog}}-dev\mysql\my.ini"
启动MySQL服务
- 在Windows开始菜单中搜索服务,打开服务的窗口。
- 找到上一步自定义的MySQL服务名,右键单击,然后单击启动即可。
MySQL数据库验证 安装介质自带的MySQL已预先建立了以下数据库。可使用
用户名/密码:root/primeton
登录MySQL,进行验证。- nacos:nacos注册&配置中心数据库
- bps4eos8:bps引擎数据库
- afcenter4eos8:afcenter组织机构权限数据库
- governor4eos8:eos8服务治理数据库
# 启动运行环境
使用管理员权限,在CMD中执行D:\primeton\eos-8.3-dev\startup.cmd
,各服务会自动启动。
说明:启动过程中会开启多个CMD窗口,请不要关闭窗口,否则服务会被关闭,无法进行以下验证。
Redis启动后的效果如下图
验证nacos nacos启动后的效果如下图
验证nacos是否启动成功:访问 http://localhost:8848/nacos/#/login (opens new window) ,输入账号/密码: nacos/nacos ,可验证nacos。
验证governor
访问地址 http://127.0.0.1:29898/#/login (opens new window),输入账密:sysadmin/000000。
gateway验证 gateway作为网关服务,为后台服务,无对应界面,启动过程无报错,说明gateway启动成功了。
bps验证 bps作为流程引擎,为后台服务,无对应界面,启动过程无报错,说明bps启动成功了。
afcenter验证 访问地址:http://127.0.0.1/#/login (opens new window),账密 admin/000000
# 配置开发环境
# 配置IDE
安装介质中包含了Eclipse IDE,无需单独安装,默认IDE文件夹的默认路径为D:\primeton\eos-8.3-dev\ide
。
说明:如果您将安装介质解压到自定义目录下,请注意替换下文中的文件路径D:\primeton\eos-8.3-dev\...
为真实的介质解压路径。例如您将介质解压至C:\EOS8
,则您的IDE文件夹的路径为C:\EOS8\ide
。
修改分配给Eclipse的内存
文件路径为
D:\primeton\eos-8.3-dev\ide\eclipse\eclipse.ini
。 需要在文件中加入以下内容。具体数值可根据开发项目所需算力和主机配置设置。# 最小内存 -Xms2048m # 最大内存 -Xmx2048m
修改Maven仓库地址 安装介质的
repository
文件夹包含了开发EOS8项目所需的依赖包,所以需要修改Maven本地仓库地址。- 在
D:\primeton\eos-8.3-dev\ide\settings.xml
文件中,将Maven的localRepository
修改为D:\primeton\eos-8.3-dev\repository
- 在IDE界面中,依次点击窗口>首选项>Maven>User Settings配置,按照下图修改。
- 在
配置数据源
在IDE界面中,右键单击Database Connections,然后单击New。
在弹窗New Connection Profile中选择MySQL,然后为填入新建连接的名称Name,然后单击下一步。
指定连接的驱动
如下图所示,单击Drivers旁边的图标,
在Name/Type页签中选择MySQL5.6Driver。
单击JAR List页签,再单击Add JAR/Zip...
添加数据库驱动包 可选择介质自带驱动包,路径为
D:\primeton\eos-8.3-dev\ide\eclipse\dropins\eostools\plugins\com.primeton.studio.database.library_5.1.2.0\library\3rd\jdbc\mysql-connector-java-5.1.47.jar
。也可自行选择其他版本驱动。单击Properties页签,填写数据库连接信息。
- User ID: root
- Password: primeton
- Connection URL:
jdbc:mysql://localhost:3306/eosdemo?characterEncoding=utf8&serverTimezone=GMT
其中,localhost:3306
为MySQL地址:端口(默认3306)
,eosdemo
为前文中为EOS8配置的MySQL服务名。
单击确定后,可以看到以下窗口。单击Test Connection,测试连接。
# 新建后端项目
在IDE界面左上角,单击文件>新建>EOS项目。然后选择微服务应用,单击下一步。
填入应用信息,示例如下图。
注意:端口号不要与其他服务冲突。如果项目创建后发现端口冲突,可以在
/project/com.primeton.eos.project.boot/src/META-INF/application.properties
中修改端口。配置数据库连接
- 文件路径:
/project/com.primeton.eos.project.boot/src/META-INF/_srv/config/user-config.xml
- 修改配置项:
jdbc:mysql://127.0.0.1:3306/eosdemo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
- 格式:
jdbc:mysql://数据库ip:端口号/供EOS8使用的数据库服务名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=时区;useSSL=false
<group name="default"> <configValue key="Database-Type">MySql</configValue> <configValue key="Jdbc-Type"/> <configValue key="C3p0-DriverClass">com.mysql.jdbc.Driver</configValue> <configValue key="C3p0-Url">jdbc:mysql://127.0.0.1:3306/eosdemo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false</configValue> <configValue key="C3p0-UserName">root</configValue> <configValue key="C3p0-Password">root</configValue> <configValue key="C3p0-PoolSize">10</configValue> <configValue key="C3p0-MaxPoolSize">50</configValue> <configValue key="C3p0-MinPoolSize">10</configValue> <!-- //seconds, 0 means connections never expire --> <configValue key="C3p0-MaxIdleTime">600</configValue> <!-- //idle connections never tested --> <configValue key="C3p0-IdleConnectionTestPeriod">900</configValue> <configValue key="C3p0-MaxStatements">0</configValue> <configValue key="C3p0-NumHelperThreads">1</configValue> <configValue key="Transaction-Isolation">ISOLATION_DEFAULT</configValue> <configValue key="Test-Connect-Sql">SELECT count(*) from EOS_UNIQUE_TABLE</configValue> <configValue key="Retry-Connect-Count">-1</configValue> </group>
- 文件路径:
启动项目 按下图所示,启动项目。
如果启动无报错信息,则表示IDE环境搭建成功。
# Troubleshooting
# 报错场景一
报错如下
Caused by: com.ctrip.framework.apollo.exceptions.ApolloConfigException: Unable to load instance for com.ctrip.framework.apollo.spring.config.ConfigPropertySourceFactory!
at com.ctrip.framework.apollo.spring.util.SpringInjector.getInstance(SpringInjector.java:40)
at com.ctrip.framework.apollo.spring.boot.ApolloApplicationContextInitializer.<init>(ApolloApplicationContextInitializer.java:66)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211)
... 8 more
Caused by: com.ctrip.framework.apollo.exceptions.ApolloConfigException: Unable to initialize Apollo Spring Injector!
at com.ctrip.framework.apollo.spring.util.SpringInjector.getInjector(SpringInjector.java:24)
at com.ctrip.framework.apollo.spring.util.SpringInjector.getInstance(SpringInjector.java:37)
... 15 more
解决方法
在IDE中,点击窗口>首选项>Java>已安装的JRE,将jre
的位置指向产品支持的本地的JDK目录。
再次启动项目即可。
# 报错场景二
报错如下
java.lang.ClassNotFoundException: com.eos.common.schedule.mbean.AppScheduleConfigHandler
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.eos.common.management.mbean.AppMbeanConfigHandler.doToLoad(AppMbeanConfigHandler.java:138)
at com.eos.common.management.mbean.AppMbeanConfigHandler.toLoad(AppMbeanConfigHandler.java:108)
at com.eos.common.management.mbean.AppMbeanConfigHandler.toLoad(AppMbeanConfigHandler.java:45)
at com.primeton.common.config.impl.ConfigurationHelper$1.doHandler(ConfigurationHelper.java:58)
at com.primeton.common.config.impl.ConfigurationHelper.handlerModule(ConfigurationHelper.java:123)
at com.primeton.common.config.impl.ConfigurationHelper.doHandler(ConfigurationHelper.java:78)
at com.primeton.common.config.impl.ConfigurationHelper.initLoad(ConfigurationHelper.java:53)
at com.primeton.ext.common.config.startup.AppConfigStartupRuntimeListener.start(AppConfigStartupRuntimeListener.java:50)
at com.primeton.runtime.core.impl.RuntimeListenerManagerImpl.startListener(RuntimeListenerManagerImpl.java:43)
at com.primeton.ext.runtime.core.RuntimeManager.start(RuntimeManager.java:55)
at com.primeton.ext.runtime.core.RuntimeJ2EEHost.contextInitialized(RuntimeJ2EEHost.java:55)
at com.primeton.eos.springboot.runtime.EOS8RuntimeJ2EEHost.contextInitialized(EOS8RuntimeJ2EEHost.java:51)
at com.primeton.eos.springboot.autoconfig.EOS8SpringBootConfiguration$1.onStartup(EOS8SpringBootConfiguration.java:135)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:237)
at com.primeton.appserver.AppServerStarter.onStartup(AppServerStarter.java:51)
at com.primeton.appserver.container.core.StandardContext.startInternal(StandardContext.java:5106)
at com.primeton.appserver.container.util.LifecycleBase.start(LifecycleBase.java:168)
解决方法
注释掉项目里sys-config.xml
中的此段配置,再启动项目。
<group name="ScheduleMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.schedule.mbean.AppScheduleConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>