学生管理系统业务架构图:
架构方案:
考虑到有一个人是php高手,结合php的特点,以及目前的人员配备情况,最简单的办法就是将项目分离,用php来实现静态的页面和无状态的数据展示。 将php实现的部分放置在最前端。之后将业务逻辑,以及对数据的处理,采用java开放,通过接口的形式,提供给php的web端调用。应用架构图如下:
在部署过程中,可以有多种方案来部署。
方案一: 这是最简单的一种部署方案,考虑到现有资源的情况,以及当前的经济条件,可以采用云主机的方案来进行,模块之间都采用单点。
方案二: 采用云主机,需要考虑到学生数据的安全性,因此需要通过mysql主从,主库进行写入和修改操作,从库也能分担读的压力。
方案三: 在考虑到数据安全性的基础之上,由于有1000学生,并发的峰值可能达到1000.因此,需要使得系统具备可扩展性。 可以充分利用nginx的loadbalace功能,在最开始,请求到前端的请求通过nginx负载到多个前端的节点。之后再访问后端的时候,再次通过nginx来负载。 负载到后端之后,java后端具备多个服务,这样初步实现看可扩展。
方案四: 可以考虑将java的后端进一步升级为springcloud微服务。这样除了loadbalance之外,还能更好的支持failover,也支持系统的水平扩容,增加系统的高可用。
方案五: 同样,在方案四的基础上也可采用dubbo,通过rpc的方式,来提升java后端的高可用能力。
方案选择: