开发者
系统二次开发指导
开发环境
- Java1.8(openJdk)
- IDE:Idea
- 操作系统:建议使用mac,或者Ubuntu,这是因为一些构建脚本只在shell环境被支持
- NodeJs :v10.24.1 ,不要使用最新版的Node,可以考虑使用nvm切换node版本
- GitBook:最新版即可,用于构建项目文档
前端依赖安装
对于前端相关的构建,依赖安装不是自动的。请手动install依赖,对于前端的网络加速问题请自行考虑解决
- 文档初始化:
cd doc && gitbook install
- 前端初始化:
cd ../malenia-frontend && npm rebuild node-sass && npm install
前端代码
前端代码对所有用户都是开放的,你可以在github获取公开的前端系统,用于定制你自己的前端网站:MaleniaFrontend
api文档
使用swagger
调优
malenia的编程环境为异步高并发,对IO要求很高、对内存也有一定要求。但是由于使用异步环境,故对线程资源要求不高。
- 内存: 整体建议至少使用4G内存的服务器
-Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=768m
- 堆内存: java的堆空间大小,建议值1024M。malenia系统不会产生大量对象,对堆空间内存使用不多(但是如果未来开发了MITM功能,那么堆空间的使用将会非常高)
- 堆外空间: 由于核心使用netty,且netty实现自己的内存管理。所以需要一定的堆外空间,建议设置为512M
- malenia堆空间占1G,堆外空间0.5G。操作系统其他部件至少占用0.5G
- CPU: 理论上malenia对计算要求不高,双核即可
- 网络: 当然是越牛逼越好
- 磁盘: malenia仅仅使用磁盘记录一些日志,且高频日志可以关闭。故看情况,一般50G磁盘的服务器即可。如果关闭了日志,那么20G服务器也可以满足需求(生产环境)
- mysql连接池: springboot默认的连接池配置较高,但是在malenia中对db的使用不多,可以看情况往低调整连接池配置(特别是你考虑安装超过20台服务器的集群的时候)
- FD: 高IO的服务,对fd资源使用非常多,一般默认系统的fd配置不足以满足使用
- 执行命令:
ulimit -n 8192
/etc/rc.d/rc.local
末尾添加ulimit -n 8192
- 执行命令:
- 如果你重度使用MITM功能,那么内存和CPU可能并不是上述预期。因为MITM需要解密http包流量,并且将报文驻留在内存一段时间。包括MITM是用户编写的扩展代码无法保证性能要求。
后端
- 双网卡支持(双网卡可以隐藏IP,和减少fd消耗量)
- 管理员可以提升其他管理员