本文将介绍简单的支持较高性能的后台架构,由于笔者仍是学生,还没有机会接触到真正业界的后台架构与实现,所以仅凭个人学到的一些知识完成本文的编写。个人愚见,若有不足,敢请教导,不胜感激。
项目整体架构部署如下:
由上图可看到后台总共有四种服务器:用于分配处理请求实现负载均衡的代理服务器、应用服务器、Redis缓存服务器、数据库服务器。当然了,静态资源可以存放于Nginx服务器本地也可以再添加静态资源服务器。
一.Nginx代理服务器
客户端通过访问nginx代理服务器,nginx通过配置好的方式,如iphash或者轮询方式将请求分配到具体的应用服务器,当然,如果客户端访问的是静态资源,则访问静态资源服务器。
Nginx实现动静分离和负载均衡的具体的配置可参考本人的另一篇博客http://blog.csdn.net/qwssd/article/details/53576387
或者他人的这一篇http://www.cnblogs.com/jacktang/p/3669115.html。
二.应用服务器
应用服务器可以使用Tomcat、Jetty等等,笔者比较熟悉和喜欢的是Tomcat服务器。如果使用的是Tomcat服务器,只需要将项目导出war文件,然后将war文件放置在/tomcat/webapps文件夹下,然后启动服务器即可访问。具体启动和停止服务器的文件存在/tomcat/bin下,若想查看日志输出,日志文件则在/tomcat/logs下,使用命令tail -f catalina.out即可查看日志。
三.数据库
数据库采用开源免费的MySQL,安转然后运行MySQL服务器即可,然后在后台代码中配置数据库的url、username、password等属性即可访问到。
四.NoSQL
采用Redis缓存实现共享内存缓存,具体的实现可参考网上的教程。这里给出一个结合EhCache和Redis的实现共享对象缓存和共享内存缓存的博客http://blog.csdn.net/pmlpml/article/details/53116377,这个博客是我的老师写的,我也照着正确实现了。
当然本文所描述的是简单的部署,如果项目中需要一些第三方服务,例如第三方登录、邮件服务、支付服务等,则需要其他的服务支持。另外,如果要求更高的处理性能,需要使用一些消息服务中间件,例如RabbitMQ,这部分笔者也在学习当中。完整架构部署图如下: