简单的高性能后台架构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的高性能后台架构相关的知识,希望对你有一定的参考价值。
本文将介绍简单的支持较高性能的后台架构,由于笔者仍是学生,还没有机会接触到真正业界的后台架构与实现,所以仅凭个人学到的一些知识完成本文的编写。个人愚见,若有不足,敢请教导,不胜感激。
项目整体架构部署如下:
由上图可看到后台总共有四种服务器:用于分配处理请求实现负载均衡的代理服务器、应用服务器、Redis缓存服务器、数据库服务器。当然了,静态资源可以存放于nginx服务器本地也可以再添加静态资源服务器。
一.Nginx代理服务器
客户端通过访问nginx代理服务器,nginx通过配置好的方式,如iphash或者轮询方式将请求分配到具体的应用服务器,当然,如果客户端访问的是静态资源,则访问静态资源服务器。
Nginx实现动静分离和负载均衡的具体的配置可参考本人的另一篇博客http://www.cnblogs.com/lingd3/p/7073594.html
或者他人的这一篇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等等(这部分笔者也正在学习)。
更完整的架构部署图如下:
以上是关于简单的高性能后台架构的主要内容,如果未能解决你的问题,请参考以下文章