单一世界架构初探之登录管理

现在我们进入实质性的探讨阶段,首先是登录管理。

单一世界中海量在线数是个很重要的问题。多数架构都是用代理服务器来分散连接,这里提供一个方法,既能满足海量连接,还能实现单点登录,细节看了再说。

单点登录,意味着,所有的请求都将被一个IP处理。而海量请求,意味着所有的登录管理都会在一个IP的完成,天啦,如果到了10M那是什么概念。即 使1M/S的处理速度,也要10S才能完成一个登录管理,那我估计,这个应用早被人骂了体无完肤,当然,魔兽世界可能例外,没看到那么多人排队进战场么? 可不止10S啊。

对于一个登录过程来说,一般可以分为几个步骤。

1、C-->登录请求-->S

2、S-->请求应答-->C

3、C-->认证信息-->S

4、S-->认证结果-->C

在这个步骤中,如果一个S同时处理所有的请求,显然在海量连接下是不可能。于是,我们将步骤2进行拆分。

2.1、S-->登录转发-->C

2.2、C-->登录请求-->Sx

2.3、Sx-->请求应答-->C

在C发出登录请求的时候,C可能得到2种报文,一个是转发报文,服务器让他连接到另外一个服务,后续的过程是一样的;另外一个是登录应答。服务器直接响应客户端的请求。

这个过程有几点好处,第一、满足单点登录,因为客户端只需要知道一个IP地址;第二、转发报文让客户端能够连接到其他IP,在海量在线的时候,实际 上,主IP没有太多的事情,只要负责转发报文;第三、客户端可以保存上次得到的IP,下次直接连接到改IP中,这样,就不需要找主IP的麻烦了;第四、如 果服务x依然有问题,比如太忙,那么,他可以再转发该客户端到其他IP去。

相关文章

什么是设计模式一套被反复使用、多数人知晓的、经过分类编目...
单一职责原则定义(Single Responsibility Principle,SRP)...
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强...
适配器模式将一个类的接口转换成客户期望的另一个接口,使得...
策略模式定义了一系列算法族,并封装在类中,它们之间可以互...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,...