Redis 是一个高性能的key-value数据库。
服务器搭建(nginx+tomcat负载均衡)
我们在做这个项目时,我们考虑因为访问量大而导致服务器性能的问题,最开始想到使用纵向扩展,来增加硬件的配置提高其性能,但这样做比较耗费资金,而且服务器内存空间也是有限的;所以后来就想到使用横向扩展来达到这一目的,
当时我们使用nginx+3个tomcat进行负载均衡(nginx是一个轻量级的web服务器,功能多而且配置简单,并发能力在同类型的网页服务器中表现较好),在我们不进行负载均衡之前,那所有的请求都由一台tomcat进行处理,这样会使我们的tomcat所承受的压力增大,而我们进行负载均衡之后,同样数量的请求经过nginx将其分发到多台tomcat进行处理,从而降低每台tomcat所承受的压力,而且当其中一台机器宕机时,其他机器还可以继续提供服务,保证服务不间断。为了解决负载均衡中session共享的问题,我们通过将session信息保存到redis服务器中,这样在多台tomcat中关于session的存取就都通过redis来完成。
怎么避免nginx产生单点故障(被动说)
同时我们为了避免nginx的单点故障,达到高可用性,就在nginx的前面又加了一个F5,从而将请求分配给多个nginx,再通过nginx分配给多个不同的Tomcat。这样大大的提高了服务的有效性,并且进一步提高了性能。
nginx+tomcat负载均衡的配置(被动说)
1.首先在nginx的conf文件夹下找到nginx.conf文件
2.其次在该文件中的http标记下添加upstream backend并配置要转发到多台tomcat及其及其端口号,设置负载均衡策略(当时我采用的是基于weight的负载均衡策略)
3.在server标记下编写location规则信息,将css,js,html这些静态资源交给nginx处理,将动态的资源如以.do,.jsp结尾的通过proxy_pass http://backend交给后端的tomcat集群处理,这样做的目的也是为了
实现动静分离。
4.最后再在各台tomcat中找到server.xml配置文件,更改Connector标签中的端口号保持和nginx配置文件中tomcat的端口后一致即可。
负载均衡中session共享具体是怎么做的(被动说)
1.下载并安装redis服务
2.下载redis和tomcat融合时所需要的jar包,将其放到各个tomcat的lib文件夹下
3.配置各个tomcat中的context.xml文件和redis服务器进行通信