HTML5技术

三分钟深入TT猫之故障转移 - 小柒2012(2)

字号+ 作者:H5之家 来源:H5之家 2017-09-18 11:00 我要评论( )

以Tomcat为例,大家都知道session是在服务器端创建并存储到容器的JVM内存中的,浏览器初次访问服务器会生成一个叫JSESSIONID的cookie,浏览器的每次请求都会附带这个cookie,服务端通过JSESSIONID会找到内存中对应

以Tomcat为例,大家都知道session是在服务器端创建并存储到容器的JVM内存中的,浏览器初次访问服务器会生成一个叫JSESSIONID的cookie,浏览器的每次请求都会附带这个cookie,服务端通过JSESSIONID会找到内存中对应的状态信息。

程序员小明,打开TT猫,输入自己的账号密码,附带cookie信息请求到了后台,TT猫后台校验成功以后,会把用户信息保存到JSESSIONID对应的内存中,这样小明和TT猫就可以无障碍的深入交流了。

这个过程也可以用以下示意图来描述:

如果你觉得会话机制如此简单,那可就有点高看小编了,篇幅有限,对会话机制感兴趣的同学只能自行查阅资料了。

故障转移

老鸨之所以能快速安抚骚年使其顺利度过这缠绵之夜,有没有感受到老鸨强大的人工智能气息?

其实我们的负载均衡器Nginx,也是做的相当智能的,如果后端节点服务器宕掉的话,Nginx通过自带的模块可以把这台坏掉的服务踢出upstream负载集群组,然后自动切换到健康节点来提供访问。

有过开发经验的小伙伴,都知道服务分有状态和无状态。

  • 无状态服务(Stateless Service):游客浏览商品、搜索商品等等这种不需要鉴权的操作。

  • 有状态服务(Stateful Service): 添加购物车,下单,支付等等需要用户认证的操作。

  • 对于这种无状态的服务请求,不管集群组使用任何负载均衡算法(随机、轮询、hash),只要有一个存活,小马哥的TT猫就可以提供正常服务。

    但是对于支付这种需要用户认证的操作,不得不说,我们要选择合适的负载均衡算法。

    服务独自存储用户状态

  • 随机、轮询算法,小明可能一辈子都无法登陆TT猫
  • hash算法,单一服务宕掉的话会导致用户状态丢失
  • 服务统一存储用户状态

    架构设计之Spring-Session分布式集群会话管理

    总结

    秋名山上行人稀,常有框架较高低,如今原理依旧在,不见当年老框架。

    底层原理可能你这辈子都不过时,解决问题的能力永远都不过时,积极向上的求知欲永远是你的强大后盾。

    既定目标,做个有追求的程序员,如果你连算法数据结构都能搞得明白,网络传输都可以手到擒来,怎学不会简单的API调用?

    塞内加在《论生命之短暂》中说过“如果一个人出海遇到狂风暴雨,被变换肆虐的风吹得团团转,你可能会觉得他航行了很远。其实航行得并不远,只是浮沉动荡的时间长而已”,没错如今的知识就像出海时遇到的狂风暴雨,我们只是被吹的原地团团转而已,并没有在知识的海洋航行很远。

    最后,愿大家都不会被吹昏头脑,据说留言的程序员都找到女朋友了...

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • this的用法 – JavaScript深入浅出(二) - OkayChen

      this的用法 – JavaScript深入浅出(二) - OkayChen

      2017-09-15 12:00

    • 深入理解计算机系统(序章)------谈程序员为什么要懂底层计算机结构 - YSOcean

      深入理解计算机系统(序章)------谈程序员为什么要懂底层计算机结构

      2017-09-09 09:07

    • 深入理解CSS3 Flexbox - sfhiwtytt22

      深入理解CSS3 Flexbox - sfhiwtytt22

      2017-06-02 12:02

    • 想要对HTML5有深入了解,必须了解这些 - pdfbook

      想要对HTML5有深入了解,必须了解这些 - pdfbook

      2017-05-25 18:04

    网友点评