nginx做负载均衡时的session问题解决办法jvm-route原理

来源:互联网 发布:最后的幸存者小说知临 编辑:程序博客网 时间:2024/06/06 11:01
nginx做负载均衡时的session问题解决办法:

nginx_upstream_jvm_route 是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能。

这个模块通过session cookie的方式来获取session粘性。如果在cookie和url中并没有session,则这只是个简单的round-robin 负载均衡。

jvm_route的原理(from 作者 Weibin Yao):
1. 一开始请求过来,没有带session信息,jvm_route就根据round robin的方法,发到一台tomcat上面。
2. tomcat添加上session 信息,并返回给客户。
3. 用户再此请求,jvm_route看到session中有后端服务器的名称,它就把请求转到对应的服务器上。

暂时jvm_route模块还不支持默认fair的模式。jvm_route的工作模式和fair是冲突的。对于某个特定用户,当一直为他服务的tomcat宕机后,默认情况下它会重试max_fails的次数,如果还是失败,就重新启用round robin的方式,而这种情况下就会导致用户的session丢失。

总的说来,jvm_route是通过session_cookie这种方式来实现session粘性,将特定会话附属到特定tomcat上,从而解决session不同步问题,但无法解决宕机后会话转移问题。


  • Github项目地址: https://github.com/tbje/nginx-upstream-jvm-route

参考: http://blog.163.com/momoliu88@126/blog/static/139208463201231104120587/


0 0
原创粉丝点击