|
10 months ago | |
---|---|---|
.idea | 1 year ago | |
backend-main | 10 months ago | |
common | 10 months ago | |
doc | 1 year ago | |
external-library | 10 months ago | |
sub-services | 10 months ago | |
.gitignore | 10 months ago | |
.gitmodules | 1 year ago | |
README.md | 10 months ago | |
pom.xml | 10 months ago |
README.md
Wusthelper-backend
⚠ 未完成状态,半成品,部分接口未完全兼容实现
武科大助手后端项目
应该是第三代后端了吧。
新的重写过的后端,其实在这版正式出来之前已经有很多个实验性的原型版本了,用了各种不同的技术,包括grpc,dubbo等等,但是都因为效果不如意或者不合适胎死腹中给砍了,没有继续写下去(其实这个readme也是曾经最早的一个原型版本改来的)
现在的这个版本应该差不多了,是时候放上来了。
这代后端结构与前面的有很大不同,使用了真·多模块的方式运行部署,部分独立模块以不同的程序运行,子模块部署在内网时,可以自动注册frpc进行服务远程转发,主服务和子服务通过http进行通信调用,各模块可以部署在不同的服务器或容器中,当然,也可以挤在一起跑。
因为基于http的json通信,因此可以跨语言语言进行调用这些子服务,若某个模块使用某种语言有比较大的优势(如网关服务可用go或node等进行开发),可以尝试直接用其他语言进行替换,只需要开发时遵循文档即可
(虽然现在并没有什么文档之类的(但是以后会补上来的啦))。
当某模块更新或下线时,可以在不重启整个项目的情况下进行更新,同时如果有多个实例部署,可及时切换到可用节点上,从而避免整个项目的完全重启而导致服务完全中断,只要对外api网关模块仍在运行,就可使用仍在运行的模块继续提供一定的服务,提高可用性,同时由于各个模块被拆分,因此相较于以前更为轻量,在模块更新或重启时也能更快的恢复服务
- 随时有可能脑抽大改结构
环境要求
包管理和构建: Maven 3.8.2+
- 后续可能会看情况转用Gradle
Java版本:
Java 17+(应使用OpenJDK,OracleJDK(包括Graalvm)会出现 SecurityException: JCE cannot authenticate the provider BC
异常)
项目模块结构
详见doc
关于Mywust库的导入问题
待补充
API文档
详见doc
构建
待补充
运行
待补充
就先这样吧,手累了