从前
写了一个新的模块要想可以使用,肯定是maven配置一下再重新部署。
问题
- 有没有什么方法可以不重新启动应用就能使模块生效呢
- 如果多模块都是springboot应用,端点可以暴露在同一个port里吗?
方案
答案肯定是可以的,这几天公司在整活动平台,就是拖拖拽拽生成一个活动。后端模块方案当时就遇到了上面两个问题,后来调研选择了阿里的SOFA。
流程:
- 启动宿主应用
- 宿主应用监听ZK,通过zknode下发命令如
plugin-three:1.0.1:activated?bizUrl=https://static.l2yy.cn/jar/app-three-1.0.0-ark-biz.jar
宿主应用自动装载模块。
3.插件继承了springboot的内置Tomcat,从而将模块端点暴露在一个port中。