2。3 Nginx
Nginx是俄罗斯人开发的一款轻量的web服务器。Nginx的性能非常高,它不仅对高并发有着很好的支持,而且还可以实现缓存、访问控制、负载均衡等多种功能,这些特点使得nginx很快成为了互联网上很流行的web服务器,尤其在国内,很多公司如新浪、阿里(阿里在nginx的基础上做了优化,开发了Tengine服务器)、腾讯等等都在使用nginx作为服务器[9]。
Nginx非阻塞的特点使得它可以处理更多的web请求,有数据表明它能支持高达5万的并发连接。作为静态文件服务器,它占用的资源能比node。js少4倍,比Apache少5到6倍,这意味着它的静态文件提供能力甚至要比同样事件驱动的Node。js高很多。Nginx具有很高的稳定性,还具有一定的容错能力,它的丰富的模块库以及灵活的配置可以满足你对web服务器的各种需求。
Nginx作为一个静态服务器,并没有渲染动态网页的能力,但是他能很好的和其他服务结合来处理动态请求。比如对于J2EE网站,它可以把动态请求通过反向代理转发给tomcat服务器,对于PHP网站,它可以通过FastCGI接口来调用PHP处理动态请求。
2。4 Spring+Spring MVC+Hibernate
J2EE技术是本课题主要的后台架构,本项目使用了J2EE比较成熟的三个框架,即Spring、Spring MVC和Hibernate。Spring框架用来管理Java Bean,Spring MVC负责分层和业务逻辑的处理,Hibernate负责数据库的访问。
Spring框架是一个用来管理Bean的生命周期的轻量级框架,它兴起于2003年,现在已经相当的成熟。Spring有两个主要功能,一是它的控制反转(IOC)和依赖注入,二是它的面向切面(AOP)[10]。使用Spring的控制反转,我们可以放心的把对象的创建和销毁交给Spring容器来管理,这样不仅省去我们自己创建销毁对象的麻烦,而且可以降低代码的耦合度。关于Spring的面向切面,利用它的事务管理我们可以让业务逻辑更加的清晰,同时也可以减少项目的代码量,比如不使用Spring时,每次利用Hibernate访问数据库都需要获取session来启动事务、提交事务、回滚事务,还需要自己写try/Catch来捕获异常,加入Spring后我们可以把这些事情交给Spring做,而我们只需负责对数据库数据的操作,这样大大减少了事务管理的麻烦。
Spring MVC框架是Spring框架的一个延伸框架,它负责将工程的数据模型、视图展示和业务逻辑清晰的分离开来[11]。与同为MVC框架的Structs比较,它的效率更高、流程处理更加的灵活。另外使用其基于注解的方式,可以让路由控制变得更加简单,省去很多维护配置文件的麻烦。
Hibernate是一个与数据库打交道的框架。它可以建立对象到数据库表之间的映射,以此来解决对象与关系之间的阻抗失配。其级联查询和懒加载的特性,可以使得我们对关联数据的查询操作变得更加简单。
2。5 Redis和MySQL
为解决传统关系型数据库所带来的种种问题,NoSQL(Not Only SQL)的概念在2009年被提出,之后一直持续火热很长时间。然而在人们冷静下来后发现NoSQL也不是万能的,很多场景还是要用到关系型数据库,于是很多web社区都重新回到了Mysql等传统数据库身边。然而这里面的Redis数据库却是个例外,人们并没有失去对它的热情。
Redis是一种内存型数据库,你可以把它当做像memcache一样的缓存来使用,但是它比memcache更加强大。Redis不仅仅支持像memcache那样的key/value存储,它拥有5种类型的数据结构,分别是字符串型(即普通的key/value)、LIST列表、SET集合、ZSET有序集合以及HASH散列[12]。使用这些数据结构你可以解决很多复杂的问题。当然你也可以就把它当做主要数据库来使用,因为它提供了将数据持久化到磁盘的功能。 HTML5+Node.js直达号手机订餐网站开发(5):http://www.youerw.com/jisuanji/lunwen_96855.html