问题原因
很多2B的项目当初设计的时候都是按照SAAS模式来设计的,但是推广运营的时候,发现很多企业并不接受SAAS模式,特别是大企业更希望可以私有化部署,可以保证数据的安全性。所以就需要对原有的微服务进行私有化部署。
问题分析
原本的微服务设计,对于运维的复杂度提高非常多,如果要私有化部署需要考虑成本、复杂度问题。所以需要做大量的减法,因为甲方就会给你一台服务器。所以基于部署资源情况,期望所有的微服务部署到一个tomcat中。那么分析下URL如下:
https://www.jianshu.com:80/writer
协议://Domain域名:Port端口/Path路径
通过分析Tomcat支持通过Path、Port、Domain来部署多应用
问题解决
方案一:Path路径来部署
通过Path路径来部署,控制启动顺序的方式如下:
1、server.xml 的 Context 配置启动。
2、conf\Catalina\localhost 下的 Context 配置启动,如果需要/访问,请取名为ROOT.xml。
3、webapps下的 启动。
方案二:domain的方式部署
通过domain的方式部署,无法控制启动顺序。
方案三:Port的方式部署
通过Port的方式部署,顺序控制灵活,根据server的排序启动。
connectionTimeout="20000"
redirectPort="8443" />
resourceName="UserDatabase"/>
unpackWARs="true" autoDeploy="true">
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
connectionTimeout="20000"
redirectPort="8443" />
resourceName="UserDatabase"/>
unpackWARs="true" autoDeploy="true">
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />