赞
踩
产品国产化是目前的趋势,我们紧跟社会步伐,将部门多条产品线做了国产化的适配。今天咱们就来了一了国产化改造心得。今天以tomcat替换方案东方通为例。
- dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <exclusions>
- <exclusion>
- <artifactId>spring-boot-starter-tomcat</artifactId>
- <groupId>org.springframework.boot</groupId>
- </exclusion>
- <exclusion>
- <artifactId>spring-boot-starter-validation</artifactId>
- <groupId>org.springframework.boot</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>javax</groupId>
- <artifactId>javaee-api</artifactId>
- <version>8.0.1</version>
- </dependency>
- <packaging>war</packaging>
-
-
- 。。。。
-
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.6</version>
- <configuration>
- <failOnMissingWebXml>false</failOnMissingWebXml>
- </configuration>
- </plugin>
- @SpringBootApplication
- public class App extends SpringBootServletInitializer {
-
- public static void main( String[] args ) {
-
- SpringApplication.run(App.class,args);
- }
-
- @Override
- protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
-
- return builder.sources(App.class);
- }
- }
注意:如果项目中采用了 spring-boot-starter-validation能力运行时会报
javax.validation.spi.ConfigurationState.getValueExtractors()Ljava/util/Set;
解决办法:
1 找到 /TongWeb安装目录/lib (网上也有说在 安装目录的 /lib/endorsed/ 文件夹下面 ,反正找到它就好) 下的validation-api.jar 并删除,然后将自己工程下的validation-api.jar 放到该目录下,重启完成。
2 项目放弃 spring-boot-starter-validation能力,并在pom中排除引用。
上传安装包 Install_TW7.0.4.6_Enterprise_Linux.bin 到服务器指定目录下,赋775权限确保服务器有java环境,执行sh Install_TW7.0.4.6_Enterprise_Linux.bin 按照提示一步一步傻瓜式操作即可。
安装完成后目录结构式这样的:
将license文件放置该目录下,进入bin执行startservernohup.sh 即可后台启动,此时即可通过浏览器访问对应的http://xxx:9060/console/rest地址了。默认账号thanos 默认密码(thanos123.com)
1, 打开单机部署页面:http://xxx:9060/console/rest 默认用户:thanos / 112312 默认密码(thanos123.com) 登录后如下图:
2,点击应用管理页面,既可以部署项目入下图,也可以对项目进行启停操作,此处部署的时候选择虚机部署(本次选择的是server对外暴露端口为8088)
虚拟主机可以在web容器配置页面进行编辑,如图:
如果你认为上述操作已经完事,那就大错特错,我们发现如果在这一个实例上面部署多个应用特别是超过5个以后,直接导致后续进程启动失败。
但是整个产品线有40-50个服务包,不能都一人一台主机吧,上官网一顿查找后找到解决方案,通过创建域的方式。
何为域呢?以下截图是官方解释
那如何创建域呢?
至此我们终于可以部署多个服务了。大家一顿操作,发现启动以后发现各种报错,原因是一个东方通实例占用4个端口(管理平台、http通道、jmi、ejb)。创建域的时候默认是在这些端口上累加操作,但是不知为何创建时将近5分钟耗时。
初步怀疑是大家创建的时候并发了,导致部分端口冲突了。于是又一通改配置,心想这下可以了吧,但是新的坑又来了。
东方通默认每个实例(域)启动时采用2G堆内存由于是提测阶段完全没必要这么多内存,一台虚机32G内存起了不到14个就再也拉不动了。
于是又一通改,逐个改域的jvm参数,至此目前告一段落。
希望可以供大家参考,尽量避免踩坑
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。