简单的高性能后台架构

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等等(这部分笔者也正在学习)。

  更完整的架构部署图如下:

技术分享

 


以上是关于简单的高性能后台架构的主要内容,如果未能解决你的问题,请参考以下文章

APP后台架构20191205

linux后台服务架构高性能设计之道

[转][知乎]高性能后台架构摘要

高性能后台服务器架构设计

[源码解析] 深度学习分布式训练框架 horovod --- 后台线程架构

基于消息总线的高可扩展性IM系统后台架构设计