@
raycloud 这种问题可以用专门的热代码部署方案 这都不是问题
而且自带的 manager 都可以做到不重启 tomcat 的情况下重新部署 app
你直接把 app 对应的 war 文件替换了 tomcat 也会自动重新加载 而不影响其他应用
总的来说还是可以看出来楼主对容器的各种配置和使用并不了解而胡乱设计部署方案
即便是这种多 app 的模式我也是认为没有必要的
多 app 之间隔离唯一的作用就是隔离每个应用之间的内存 从而防止不同 app 之间能够相互访问而导致的信息泄漏、攻击等安全问题
但是如果所有代码的控制权都在你们自己手里 那就完全没有必要担心这个问题 应用层面的访问控制完全足够了 只需要在业务逻辑上把不同店铺的数据独立开即可
如果想要支持不同的域名 /子域名访问不同店铺的数据 可以用 nginx 或者 apache 做反向代理 配合 url_rewrite
比如
子域名转发
rewrite http://(.+).example.com
http://www.example.com/$1或者
域名转发
rewrite ^
http://www.example.com/$hostname/$request_uriSpringMVC 里这样配置:
@
RequestMapping("/:shop_name/buy")
@
RequestMapping("/:shop_name/sell")
那两个 rewrite 规则是我查了下文档随便写的 自己没有测试 反正用 rewrite 是可以实现的