哈希游戏- 哈希游戏平台- 哈希游戏官方网站在[2,3] 等系统中,都使用了以cookie 为基础的单点登录系统设计。基于http 协议的网站服务器都是无状态服务器,建立一次连接之后就丢失所有信息。因此很难区分不同的用户。而cookie 就是用来解决这一问题。Cookie 是存储在客户端本地的一个文件,里面存有一系列key-value 对,在访问服务器的时候会带上这些信息。而服务器也可以更改cookie 值然后再返回给客户端。因此,服务器可以通过读取自己预设在cookie 里的值,获取用户名等信息,从而提高更好地服务。
每一个SSO 服务器,彼此之间存储的数据并不相同。因此,需要对数据进行一个划分。这里采用[5] 中一致性哈希的算法。首先,在一个0 到232 ?1 的值域上,每个数字依次排列组成一个环。然后对于每个物理节点,随机取1000 个不同32 位数,作为该节点的虚拟节点。每个请求中都会有用户名,对该字符串做一个哈希,获取一个32 位的哈希值。然后顺着哈希环,找到该值对应的下一个虚拟节点。说明该数据就存储在该虚拟节点对应的物理节点上。
本文提供了一个高扩展性、高性能的分布式单点登录系统的设计与实现。与传统的单点登录系统相比,系统结构清晰,构架灵活,可扩展性极强。由于中间层转发服务器的存在,应用服务器访问任意一个服务器都可以成功获得对应的服务,而不需要自己判断去连接哪一个SSO 服务器。由于去中心化的设计,在每一层添加和删除某些节点,对整个系统都没有任何影响。松耦合的特性,使得三层构架的开发变得简单和灵活,每一层可以作为一个子系统单独实现。
通过上面两个优化方案, 可以使得由转发服务器到SSO 服务器的网络请求数目下降多个量级。系统整体性能理论上能提升将近一倍。经过固定时间, 或者该SSO 服务器查询列表满了, 则将队列中所有查询请求一起发送给对应的SSO 服务器中。最后, 将获取的查询结果返回给客户端。经过固定时间,或者该SSO 服务器查询列表满了,则将队列中所有查询请求一起发送给对应的SSO 服务器中。最后,将获取的查询结果返回给客户端。