实际上我以前写过一个简单的web 前后端部署模式的说明,以下简单说明下关于java 语言的,毕竟这个使用人群比较多
参考图
- 前后端彻底分离模式(都独立部署)
web 使用基于nodejs 周边的能力,使用web 框架开发,之后部署到nginx 或者cdn中,然后通过api gateway 访问 后端接口服务,接口会包含一个跨域的问题,可以基于
cors 解决,可以在gateway 或者 后端服务解决
- all-in-one 模式
以上模式不是传统的模版以及mvc 模式,而且独立开发模式,web 或者java api 由不同的团队开发,此中模式又可以分裂为好几种,比如代码仓库是在一起的,以及
代码库在一起的模式:
对于代码仓库在一起的比较适合项目项目较小的,而且没有太多安全问题的,此时web 的构建直接可以使用frontend maven 扩展等,进行构建,然后在基于resource 插件将后端与前端的资源合并打包,可以参考我以前写的,如果不想使用frontend maven 打包插件,可以先构建,然后利用ci/cd 进行合并打包,也是一种方法,就是比较费事
当然我们还可以将web 打包为一个maven 模块,之后通过maven 进行版本以及构建管理
此种模式,web 也可以通过后端入口配置一个web 的静态资源的引用,而且还能解决跨域的问题,静态资源部署在nginx 或者cdn 中
代码库分散的不同项目的模式:
此种模式,包含的前后端集成模式也比较好玩,比如后端包含一个入口,入口配置了web 的静态资源,而且还能解决跨域的问题,静态资源部署在nginx 或者cdn 中
此种模式我们也可以将web 打包为一个maven 模块,之后通过maven 进行版本以及构建管理,后端通过maven 等依赖工具引入解决
说明: 此时的一些玩法,可能前端同学可能不是很爱参与,因为是以后端的构建体系为核心了,但是从玩法上,也没有牺牲多少关于web 开发的便捷性,周边工具都是可以使用的
说明
现在微服务的生态以及周边都很稳定了,包括各种框架以及玩法,但是很多时候大家只是学习了一个微服务框架,而不是学习了一套思想以及方法论,在实际实践的时候只会抄作业,此时会发现微服务有时问题很多,而且很复杂(部署、集成、带来的各种安全问题),多进行一些深入的研究探索问题是有解决方法的