Nginx负载均衡实现tomcat集群方案简要小结

一、负载均衡

          Nginx是一个常用的【反向代理服务】,可以自定义模块,实现【请求转发】以及【负载均衡】(根具体采用策略有关)。

          为了tomcat集群的【高可用性】,还需要实现nginx的【双机热备】。

     1. 如果仅是对外提供一个【页面访问】,不用区分【单一用户】(不区分每个访问session,不涉及用户权限,用户资料等内容),仅仅配置【nginx负载均衡策略】即可。

        

     Nginx负载均衡策略主要分以下4种:

        1)轮询(默认)

                每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器宕机,能自动剔除。

        2)ip_hash

                 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。

        3) fair

                 按后端服务器的响应时间来分配请求,响应时间短的优先分配。  

        4) url_hash

                 按url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

 

       2. 如果涉及到用户session,做一些鉴权缓存、存放临时信息时,就必须做tomcat的session共享。

           目前可参考的session共享方式主要分为2种。

           1)利用tomcat自带的【组播机制】,实现session复制。

                  对tomcat及应用的若干配置文件进行配置即可实现,但这种方式些弊端,不建议用session复制的方式。

                  在实际使用过程中,也发现有存在session莫名失踪的现象。

           2)利用第三方机制存储session

                  比较常见的是tomcat集成memcached服务器来存储session。

                  在实际项目中,采用redis实现session存储,redis高效的存取性能为高效的访问提供了保障。

   小结

        是否实现session共享与nginx的负载策略有很大关系。

          比如:

              采用轮训策略,就必须实现session共享,因为客户端会访问到每台服务器;

              如果采用ip_hash策略,就可以不用考虑session共享问题了;

              但是ip_hash有些缺陷使它不能随便使用(如多台pc使用同一个外网ip)。

   最近发现一个Nginx的粘连模块(类似session粘连),可以看做nginx的第5种均衡策略。

   它利用客户端cookie,对其写入一个route参数,每次访问可以根据route的值,固定的访问一台服务器,解决的session共享的问   题。

 

二、tomcat集群

          所谓的tomcat集群,就是可以向外提供【并行服务】的多台机器,任何一台服务器宕机,其他服务器可以替代它向外提供服务,而不影响用户访问。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值