去除spring boot内置Tomcat
1.去除jar包依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 去除内嵌tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加servlet的依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
2.继承SpringBootServletInitializer重写configure方法
@SpringBootApplication
public class ExportApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(ExportApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
修改tomcat内存大小
因为spring Cloud都是多项目的存在,统一放在一个tomcat下,有可能会内存溢出。这是由于Tomcat 默认jvm 内存为 256 m 的缘故,此时我们就需要手工指定tomcat 所占的jvm 内存。
在“echo "Using CATALINA_BASE:$CATALINA_BASE"”上面加入以下行:
JAVA_OPTS='-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m'
#表示初始化内存为512 M , 最大内存为 1024M
修改Tomcat配置文件,配置多个项目
修改conf下的server.xml文件
以部署俩个项目为列子
1.复制Service节点。
2.修改 <Service name="Catalina1">
3.修改自己想要的端口号
4.修改<Engine **name**="Catalina1" defaultHost="localhost">
5.修改 <Host name="localhost" **appBase**="/opt/tomcat/think-water/tw-gate"
unpackWARs="true" autoDeploy="true"> 将appBase路径修改为存放项目war的地方
6. 以端口号启动,去掉项目名。添加
docBase是以host节点中的appBase为相对路径的,你也可以写绝对路径。
<Context path="" docBase="tw-gate-0.0.1-SNAPSHOT" reloadable="true" />
7.在conf下添加对应的文件夹,名字与<Service name="Catalina1">中的name对应
例子:
<Service name="Catalina">
<Connector port="8761" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8763" />
<Connector port="8769" protocol="AJP/1.3" redirectPort="8763" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="/opt/tomcat/think-water/tw-center"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="tw-center-0.0.1-SNAPSHOT" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
<Service name="tw-gate">
<Connector port="8110" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8763" />
<Engine name="tw-gate" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="/opt/tomcat/think-water/tw-gate"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="tw-gate-0.0.1-SNAPSHOT" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>