1.代码目录结构1.代码目录结构
1.1. 后端目录结构1.1. 后端目录结构
- 后端代码的外层目录如如下图,每个目录表示一个微服务。如下图,ttt-bas表示主数据的微服务,ttt-oms表示订单的微服务,ttt-bms表示结算的微服务,其中ttt是项目代码。
- 每个微服务目录下又分entity、api和business三个目录。entity和api目录对应的工程编译为jar包,business目录对应的工程编译为war包。Business工程引用api和entity的jar包。
- api工程编译为jar包,内容是该微服务对外提供的接口。初始项目时一般是空目录,提供给后续开发有使用到跨服务调用时存放接口的目录。
- entity工程编译为jar包,微服务项目的云平台对应视图中,会定义拆包规则,把domain的代码拆到api目录下。
- business工程编译为war包,引用api和entityjar包,该war包对应一个独立的数据库。
- 微服务项目的云平台对应视图中,会定义拆包规则,把mybatis的mapper、service类和控制器的代码拆到business目录下。
1.2. 前端目录结构1.2. 前端目录结构
- 前端代码的外层目录如下图, ttt-www是前端静态资源主目录(nginx的root指向该目录),红框内容为前端框架文件目录。
- 前端代码的外层目录如下图,在ttt-www目录下,每个微服务有一个独立的www目录,例如ttt-bas-www表示主数据微服务的目录,包括主数据的前端html和js目录。
- 前端控件代码在外层目录static目录的app/framework子目录下,如下图:
- 登录页和主页的js文件,在外层目录static的app/main子目录下,如下图:
2.配置文件 2.配置文件
2.1. 后端配置文件2.1. 后端配置文件
- 在项目工程的外出
pom.xml
文件,ipf.version
是云平台基础包版本号。
- 在
business
模块中的pom.xml
需要引入api
和entity
jar包。
- 每个系统中的business工程的
src/java
路径下会定义启动类。在启动类中会定义定义扫描路径等信息,如下图:
- 每个系统中的
src/resource
下的apllication.yml文件中定义了后端的配置信息。例如:启动端口号。
- 数据库连接信息配置,如下图:
- zookeeper配置信息,如下图:
- kafaka配置信息,如下图:
- redis配置信息,如下图:
- eds配置信息,如下图:
2.2.前端配置文件2.2.前端配置文件
- 前端主目录ttt-www下的static目录下appconfig.js定义各微服务上下文信息,如下图所中所示1:上下文变量;2:静态资源路径;3:上下文路径:
注意:每个微服务的上下文变量、上下文路径、静态资源路径在各个配置文件里面要一致。
- 前端主目录ttt-www下的static目录下config.properties.js定义提供下拉框的数字字典请求访问地址,如下图:
- 前端主目录ttt-www下的static目录下config.properties.js定义各微服务上下文信息,如下图:
- 前端每个微服务目录下(以ttt基础数据微服务ttt-bas-www为例)的static目录下config.properties.js定义提供下拉框的数字字典请求访问地址,如下图:
- 前端每个微服务目录下(以ttt基础数据微服务ttt-bas-www为例)的static目录下config.properties.js定义当前微服务的上下文信息,如下图:
-
微服务项目的有些前端控件与传统项目版本不同。
1)\hbias_www\static\app\framework\upload\UploadGroupModule.js
3. GURS分布式系统管理3. GURS分布式系统管理
3.1. 后端说明3.1. 后端说明
- 原先单系统的系统管理在微服务下被拆分为认证中心和系统管理两个部分。系统管理主要是负责对应的用户,菜单,功能权限的配置,而认证中心才是实际功能权限和数据权限的认证系统。gurs模块和上面介绍的模块目录结构类似,而认证中心没有前端配置信息。后端配置则和gurs一样。两个系统指向同个数据库地址。
4. Nginx配置4. Nginx配置
4.1. 配置说明4.1. 配置说明
- 根目录指向hbias_www目录,如下图。
- 微服务登录请求转向EDS的单点登录服务,如下图:
- 访问每个微服务的请求转向EDS的对应微服务,如下图:
- 本地开发需要单步跟踪调试时,对应的war包请求转向本机tomcat,如下图:
注意:如果EDS2.0时转向需要加上engine子目录,例如:proxy_pass http://192.168.0.201:8081/engine/wj_gurs_business;
转向tomcat时没有engine子目录。
5. Mysql数据库注意事项5. Mysql数据库注意事项
5.1. 配置说明5.1. 配置说明
- business包下的config目录下pagehelper.properties设置为mysql,如下图:
5.2. 手工代码5.2. 手工代码
- Oracle数据库的视图语法与MySql有差异,检查MySql对应视图是否正常;
- Oracle存储过程要改造为java代码实现;
- Java源代码中的自定义sql语法要转换为MySql支持的语法;
- 数据库中有存储sql语句时,需要转换为MySql支持的语法;
- 注意:–开头在Oracle中时注释语句,但在MySql中不是注释语句;MySql注释语句以#开头。
6. GLPaaS微服务项目云平台视图6. GLPaaS微服务项目云平台视图
- 请参考初始化云平台项目
7. EDS服务常用功能7. EDS服务常用功能
7.1. EDS控制台7.1. EDS控制台
- 谷歌浏览器输入EDS控制台访问地址登录,默认用户名密码root/root,如下图:
- 提供方节点管理界面,查看存活的服务提供方,如下图:
- RPC服务管理,查看某个RPC服务有哪些提供方,如下图:
8. Jenkins微服务项目设置8. Jenkins微服务项目设置
8.1.微服务war包构建任务8.1.微服务war包构建任务
- 构建任务中的SVN地址,直接指定到对应微服务的后台代码目录,如下图:
- 构建后部署war包到应用服务器对应的tomcat上,如下图:
8.2.静态资源www构建任务8.2.静态资源www构建任务
- 构建任务中的SVN地址,直接指定到hbias_www主目录,如下图:
- 从SVN获取静态资源后,用脚本拷贝到服务器静态资源主目录,如下图:
注意:nginx对应的主目录,应与此脚本拷贝静态资源的目标目录一致。