zoukankan      html  css  js  c++  java
  • nginx笔记4-负载均衡带来的问题以及解决办法

    接着笔记3,将笔记三的改造一下,现在分别启动两个Tomcat,在页面获取session。如图所示:

    tomcat2的session:

    tomcat1的session:

     根据上图发现,每个tomcat取到的session不一样。因此nginx负载均衡带来的问题就是session不一致,假设用户登陆后请求分发到Tomcat1,下一次请求到tomcat2的话,

    那么每一次请求都会要求用户登陆。这必然不行的。

    解决session共享问题办法有:

    1.应用服务器(即Tomcat)之间进行session同步。通过配置tomcat的server.xml文件中配置相应的端口和地址等等。但是缺点是:应用服务器本身能力有限,再来个session共享的话,会带来很大的网络开销,

    因此这种方式基本不用。

    2.通过前面的笔记三的负载均衡算法中的源地址哈希算法。通过这个算法,只要IP不变化,请求永远定位到同一台应用服务器。修改nginx.conf文件,配置负载均衡的算法为源地址哈希,如下图所示:

     配置好后,我们再重新刷新浏览器,看一下,请求分发是否还发生变化,如下图:

    正如上图所示,无论怎么刷新,请求的都是用一个应用服务器。

    这样做就不存在session问题了。虽然解决的session问题,但是不容灾了。因为如果定位到的那台应用服务器挂了,那么用户是无法访问的。

    某些中小型的系统可以使用。但是优缺点。

    3.通过session外置集中管理。session外置集中管理用的最多的就是NoSQL数据库redis.举个例子,比如用用户账号和登陆系统的时间搓弄成一个token来模拟session。设置一定的过期时间。每次

    请求分发到应用服务器的时候,从redis从取token校验即可。这样就解决的session共享问题。

  • 相关阅读:
    Binary Tree Zigzag Level Order Traversal
    Binary Tree Level Order Traversal
    Symmetric Tree
    Best Time to Buy and Sell Stock II
    Best Time to Buy and Sell Stock
    Triangle
    Populating Next Right Pointers in Each Node II
    Pascal's Triangle II
    Pascal's Triangle
    Populating Next Right Pointers in Each Node
  • 原文地址:https://www.cnblogs.com/huangjuncong/p/8322207.html
Copyright © 2011-2022 走看看