CN102571575A - 一种session 信息创建方法、装置和系统 - Google Patents
一种session 信息创建方法、装置和系统 Download PDFInfo
- Publication number
- CN102571575A CN102571575A CN2011104519610A CN201110451961A CN102571575A CN 102571575 A CN102571575 A CN 102571575A CN 2011104519610 A CN2011104519610 A CN 2011104519610A CN 201110451961 A CN201110451961 A CN 201110451961A CN 102571575 A CN102571575 A CN 102571575A
- Authority
- CN
- China
- Prior art keywords
- session information
- packet
- storage server
- user
- application server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本申请提供了一种session信息创建方法、装置和系统,涉及网络技术领域。所述方法包括:根据用户的连接请求,在即时通讯应用服务器端对所述用户生成相应session信息;通过所述连接请求中的用户标识确定所述session信息所在的数据分组;根据所述数据分组与至少一个存储服务器的对应关系将包括所述session信息的数据包发送给所在存储服务器;存储服务器从所述数据包中解析出session信息并进行存储;针对每个用户采用上述步骤创建session信息,以将所述即时通讯应用服务器的所有在线用户的session信息都存储在所述的至少一个存储服务器上。本申请可通过专设的服务器存储session信息,解决了本地服务器的内存的大量使用而影响本应用服务器的性能,并解决了session信息的溢出问题。
Description
技术领域
本申请涉及网络技术领域,特别是涉及一种session信息创建方法、装置和系统。
背景技术
比如session信息。session:在计算机中,尤其是在网络应用中,称为“会话”。在计算机专业术语中,session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间,一般情况下还包括一些与用户相关的信息。具体到Web中的session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,session实际上是一个特定的时间概念,在实际中session的信息中还包括了一些用户相关的session信息,比如用户的id等。session信息一般包括两层含义:“面向连接”或“保持状态”;“面向连接”指的是在通信双方通信之前要建立一个通信的渠道,“保持状态”指的是通信的一方能够把一系列的消息关联起来,使得消息之间可以互相依赖。session填补了HTTP协议的局限:HTTP协议被认为是无状态协议,无法得知用户的浏览状态,当它在服务器端完成响应之后,服务器就失去了与该浏览器的联系。session信息可以用于网络中某一用户的身份认证,状态记录,页面之间的参数传递等。
现有技术中,IM(Instant Messenger,即时通讯)应用服务器根据用户请求为该用户建立session信息后,会将该session信息存储在本服务器的内存中,当用户量变大时,session信息的存储也会无限变大,然而,对于一台IM应用服务器,其物理内存是有限的,如果session信息大量的增加,超过了内存的存储上限,那么当前应用服务器就无法存储更多的session信息,导致session信息溢出,并且如果当前应用服务器中采用过多内存去存储session信息,会影响IM应用服务器本身的运行,导致IM应用服务器的性能降低。
发明内容
本申请所要解决的技术问题是提供一种session信息创建方法、装置和系统,解决了因出现巨量session信息而导致IM应用服务器端session存储溢出的问题,并解提升了IM应用服务器端的性能。
为了解决上述问题,本申请公开了一种session信息创建方法,包括:
接收用户的连接请求;
根据用户的连接请求,在即时通讯应用服务器端对所述用户生成相应session信息;
通过所述连接请求中的用户标识确定所述session信息所在的数据分组;
根据所述数据分组与至少一个存储服务器的对应关系将包括所述session信息的数据包发送给所在存储服务器;
存储服务器从所述数据包中解析出session信息并进行存储;
针对每个用户采用上述步骤创建session信息,以将所述即时通讯应用服务器的所有在线用户的session信息都存储在所述的至少一个存储服务器上。
优选的,通过用户标识确定所述session信息所在的数据分组的方法包括:
通过哈希函数将所述用户标识转换为一个整数;
将所述整数除以所述数据分组的组数N,并提取计算后的余数;
根据预设的余数与数据分组的对应关系确认所述session信息所在的数据分组。
优选的,所述每个数据分组至少包括一个数据块,每个所述数据块存储M个相同的session信息,所述同一数据分组的任意两个数据块不在同一存储服务器中。
优选的,当一个数据分组通过多个数据块对应多个存储服务器时:
将包括session信息的数据包随机发送给所述多个存储服务器中的一个;
所述存储服务器同步更新其余对应该数据分组的存储服务器中的session信息。
相应的,本申请还公开了一种session信息读取方法,包括:
接收用户的信息发送请求;
在即时通讯应用服务器端解析所述发送请求中对应目标用户的用户标识;
通过所述目标用户的用户标识确定相应session信息所在的数据分组;
根据所述数据分组与存储服务器的对应关系,将包括所述目标用户的用户标识的数据包发送给所在存储服务器;
存储服务器从所述数据包中解析出所述用户标识,当所述用户表示对应的session信息存在时,则根据用户标识提取相应session信息返回至即时通讯应用服务器端。
相应的,本申请还公开了一种session信息创建系统,包括:
即时通讯应用服务器端和存储服务器端;
所述的即时通讯应用服务器端包括:
请求接收模块,用于接收用户的连接请求;
判断生成模块,根据用户的连接请求,在即时通讯应用服务器端对所述用户生成相应session信息;
分组确认模块,用于通过所述连接请求中的用户标识确定所述session信息所在的数据分组;
信息发送模块,用于根据所述数据分组与至少一个存储服务器的对应关系将包括所述session信息的数据包发送给所在存储服务器;
所述存储服务器端,用于从所述数据包中解析出session信息并进行存储。
优选的,所述分组确认模块包括:
哈希子模块,用于通过哈希函数将所述用户标识转换为一个整数;
取余子模块,用于将所述整数除以所述数据分组的组数N,并提取计算后的余数;
确认子模块,用于根据余数与数据分组的对应关系确认所述session信息所在的数据分组。
优选的,所述每个数据分组至少包括一个数据块,每个所述数据块存储M个相同的session信息,所述同一数据分组的任意两个数据块不在同一存储服务器中。
优选的,当一个数据分组通过多个数据块对应多个存储服务器时:
所述的发送模块还用于将包括session信息的数据包随机发送给所述多个存储服务器中的一个;
所述的存储服务器端还用于同步更新其余对应该数据分组的存储服务器中的session信息。
相应的,本申请还公开了一种session信息读取系统,包括:
即时通讯应用服务器端和存储服务器端;
所述的即时通讯应用服务器端包括:
请求接收模块,用于接收用户的信息发送请求;
解析模块,用于在即时通讯应用服务器端解析所述发送请求中对应目标用户的用户标识;
分组确定模块,用于通过所述目标用户的用户标识确定相应session信息所在的数据分组;
信息发送模块,用于根据所述数据分组与存储服务器的对应关系,将包括所述目标用户的用户标识的数据包发送给所在存储服务器;
所述存储服务器端用于从所述数据包中解析出用户标识,当所述用户表示对应的session信息存在时,则根据用户标识提取相应session信息返回至即时通讯应用服务器端。
与现有技术相比,本申请包括以下优点:
本申请通过将session信息存储从IM应用服务器剥离,存储到专设的session信息存储服务器中进行存储,并且将session信息切分成至少一组存到相应专设的session信息存储服务器中,如此,对于该应用服务器来说在本地应用服务器的内存中就不用存储session信息,而可以通过专设的服务器去存储session信息,这样本地服务器的内存就不会因为大量存储session信息而影响本应用服务器的性能;并且,通过对session信息数据的切分成至少一组存到相应存储服务器中的方式,可根据session信息的数量将session信息切分为多组,存储到多个存储服务器中,可完全解决session信息的溢出问题,完全将session信息进行存储。
附图说明
图1是本申请一种session信息创建方法的流程示意图;
图2是本申请一种session信息读取方法的流程示意图;
图3是本申请一种session信息创建系统的结构示意图;
图4是本申请一种session信息读取系统的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请一种session信息创建方法的流程示意图,包括:
步骤110,接收用户的连接请求。
在IM(Instant Messenger,即时通讯)应用中,用户需要首先与IM应用服务器进行连接,才能与其他用户进行通讯。比如用户需要进行登录后才能进行通讯。那么如果用户需要进行IM通讯,那么其登录时就会发送一个连接请求到IM应用服务器端,IM服务器端则会接收用户发出的连接请求。
步骤120,根据用户的连接请求,在即时通讯应用服务器端对所述用户生成相应session信息。
session机制是一种应用服务器端的机制,应用服务器使用一种类似于散列表的结构(包括散列表)来保存信息。但程序需要为某个用户的请求创建一个session的时候,应用服务器首先检查这个用户的请求里是否包含了一个session标识即session id,如果已经包含一个session id则说明应用服务器已经为此客户创建过session,应用服务器就按照session id把这个session提取出来进行处理。如果客户请求不包含session id,则由应用服务器为此客户创建一个session,并且生成一个与此session相关联的session id,这个sessionid将在本次响应中返回给用户保存。而在IM应用系统中,对于每一个在线的用户,都需要长时间保持其session信息直至用户退出,而且每一个在线用户与IM应用服务器都是通过长连接进行连接的。因此,本系统只需要在每个用户登录的时候为其创建一个session信息即可。
那么当用户登录时,会发送一个连接请求到IM应用服务器,IM应用服务器接收到该连接请求后,会分析该连接请求是否否包括session标识;如果不包括,在即时通讯应用服务器端对所述用户生成相应session信息。
生成session信息时通过分析请求中的相关信息生成,比如用户标识即用户id,用户端IP,用户端类型(比如用户使用的是台式机还是使用的iphone手机等终端)。
一般session信息包括用户标识即用户id,用户端IP,session id,用户端类型,session时间戳等。其中session id由应用服务器生成与session信息对应。
步骤130,通过所述连接请求中的用户标识确定所述session信息所在的数据分组。
在实际中,用户的连接请求中包括用户标识(一般为用户id),一般为用户在IM服务器中注册的id,比如123456,wy-1等,那么IM服务器即可根据用户标识确定该用户属于哪个数据分组。为了方便叙述,下面以Groupi表示各数据分组,比如数据分组1表示为Group1。
优选的,通过用户标识确定所述session信息所在的数据分组的方法包括:
步骤S11,通过哈希函数将所述用户标识转换为一个整数。
因为用户标识比较随意,比如123456,wy-1,如果是纯数字形式可以比较好直接通过取余留算法分组,但如果是字母或者一些符号组成的id就无法通过取余留算法进行分组。那么就需要对用户标识进行转换,统一转换为整数,即一个md5值的整数,然后进行后续处理。
在实际中哈希函数的可根据实际需求进行设置,本申请不对其加以限制。
步骤S12,将所述整数除以所述数据分组的组数N,并提取计算后的余数。
比如通过将前述步骤将wy-1通过某个哈希函数转换成101,而如果设置数据分组的组数为4,那么通过公式101%4得其余数为1。
步骤S13,根据预设的余数与数据分组的对应关系确认所述session信息所在的数据分组。
在实际中,如果将需要将各用户分为N个数据分组,那么可使一个余数对应一个数据分组。比如前述将各用户分为4个数据分组,那么可使整数除以4的余数1对应Group1,余数2对应Group2,余数3对应Group3,余数0对应Group4。
那么前述例子中用户id为wy-1的用户即被分为Group1。
在实际中,会预先加载所述余数与数据分组的对应关系。
另外,也可通过其他方式将用户id进行分组:比如前述作为除数的数也可为其他数Q,然后将各整数除以Q得到的各种余数分别对应N个数据分组。比如除以8,那么得到的余数为0、1、2、3、4、5、6、7,那么可将余数0和1对应Group1,将余数2和3对应Group2,将余数4和5对应Group3,将余数6和7对应Group4。又比如,直接以用户id的申请时间分,将前1~100000分入Group1,将100001~200000分入Group2等。具体的分组方式本申请不加以限制。
步骤140,根据所述数据分组与至少一个存储服务器的对应关系将包括所述session信息的数据包发送给所在存储服务器。
在实际中,数据分组与专门存储session信息的存储服务器存在对应关系。如果只设置一台存储服务器,那么所有数据分组就只在该台服务器。如果设置多台服务器,那么可将数据分组分散到其中的几个服务器中,比如前述的4个Group,那么如果设置2台存储服务器,那么可设置Group1和Group2对应其中一台存储服务器,剩余两个Group对应剩余一台存储服务器;如果设置4台存储服务器,那么可设置每个Group对应一台存在服务器。
优选的,所述每个数据分组至少包括一个数据块,每个所述数据块存储M个相同的session信息,所述同一数据分组的任意两个数据块不在同一存储服务器中。
即当将session信息切分到不同的Group时,可在每个Group设置多个GDS块(Group Data Storage,数据块),每个GDS存储相同的分到数据分组的session信息。比如前述的4个数据分组,如果每个数据分组设置两个GDS块,那么对于存储服务器的配置可以有多种方案,比如设置4台存储服务器A、B、C、D,存储服务器A和B存放Group1和Group2的数据块,存储服务器C和D存放Group3和Group4的数据块,如此既将原来在同一个服务器内存中存储的session信息分别存储在了两个服务器中,并且每个数据分组因为该Group的数据块在不同的存储服务器中,实现了同一份session数据信息的冗余备份,再某一台存储服务器挂掉时,某个数据分组的session信息可从相应的其他服务器中读取session信息。
在本申请中GDS块的数量可以根据实际情况设置,比如每个数据分组设置3个GDS块或者更多,同时服务器的配置情况也可根据实际情况配置,只需保证同一数据分组的任意两个GDS块不在同一存储服务器中即可。
在实际中,会预先加载所述Group与存储服务器的对应关系,并且各服务器的端口及ip等信息也加载到IM应用服务器中。IM服务器确定了对于某个用户生成的session信息对应哪个Group后,再根据Group与存储服务器的对应关系,选择其对应存储服务器中的一台将通过TCP/IP协议将包括session信息的数据包发送给选择的那台存储服务器。
优选的,当一个数据分组通过多个数据块对应多个存储服务器时:
步骤S21,将包括session信息的数据包随机发送给所述多个存储服务器中的一个。
比如前述例子中,存储服务器A和B存放Group1和Group2的数据块,存储服务器C和D存放Group3和Group4的数据块。那么Group1和Group2对应存储服务器A和B。而对于前述用户id为wy-1的用户,IM应用服务器对其建立的session被分为Group1,那么该session信息可由IM应用服务器随机发送给存储服务器A和B中的一个。IM服务器端选择时可用“random”函数进行选择。比如,如果IM服务器端随机选择了存储服务器A,那么wy-1的session信息即被根据与存储服务器约定的协议打包,然后通过TCP/IP等协议发送到存储服务器A中。
然后该存储服务器解析接收到的数据包,并根据协议解析数据包中的session信息进行存储。
在实际中,存储服务器在存储session信息时,会首先在内存中申请一块内存空间来存储相应的session信息。其中,所述的内存空间可以是预先申请的也可以是实时申请的。
步骤S22,所述存储服务器同步更新其余对应该数据分组的存储服务器中的session信息。
因为前述需要保证每个Group的各GDS块中存储的session信息一样,即比如如果Group1在存储服务器A中的GDS块1存储了用户id为1~1000的session信息,那么Group1在存储服务器B中的GDS块2也需要存储用户id为1~1000的session信息。
所以,比如在前述例子中,wy-1的session信息被发送到了存储服务器A中,存储服务器A再将该session信息同步更新到存储服务器B中。其他情况可以类推。
步骤150,存储服务器从所述数据包中解析出session信息并进行存储。
实际中,在存储服务器接收到IM服务器发送的包括session数据包后,可根据预先约定的协议对数据包进行解析,获得session信息,然后在本服务器的内存中申请一个内存空间存储该session信息。在实际中,存储服务器在存储session信息时,会首先在内存中申请一块内存空间来存储相应的session信息。其中,所述的内存空间可以是预先申请的也可以是实时申请的。
在实际中,针对每个用户采用上述步骤创建session信息,以将所述即时通讯应用服务器的所有在线用户的session信息都存储在所述的至少一个存储服务器上。
参照图2,其示出了本申请一种session信息读取方法的流程示意图,包括:
步骤210,接收用户的信息发送请求。
在IM应用系统中,用户与IM应用服务器连接上以后,如果用户不退出,则会一直保持在线状态,用户可通过IM应用服务器将自己的消息发送给其他用户。比如,如果用户A想发消息给用户B,那么用户A会将包括A需要发送的消息和目标用户标识(本例中即为用户B的用户id)的信息发送请求发送到IM应用服务器端。IM应用服务器端则会接收所述信息发送请求。
步骤220,在即时通讯应用服务器端解析所述发送请求中对应目标用户的用户标识。
对于前述例子中,IM应用服务器端接收到了用户A发送的包括A需要发送的消息和目标用户标识的信息发送请求后,则会解析所述请求中的对应目标用户的用户标识,比如,如果用户A发送的目标用户B的用户id为wy-1,那么IM应用服务器端会解析出wy-1。
步骤230,通过所述目标用户的用户标识确定相应session信息所在的数据分组。
优选的,优选的,通过用户标识确定相应session信息所在的数据分组的方法包括:
步骤S11,通过哈希函数将所述用户标识转换为一个整数。
因为用户标识比较随意,比如123456,wy-1,如果是纯数字形式可以比较好直接通过取余留算法分组,但如果是字母或者一些符号组成的id就无法通过取余留算法进行分组。那么就需要对用户标识进行转换,统一转换为整数,即一个md5值的整数,然后进行后续处理。
在实际中哈希函数的可根据实际需求进行设置,本申请不对其加以限制。
步骤S12,将所述整数除以所述数据分组的组数N,并提取计算后的余数。
比如通过将前述步骤将wy-1通过某个哈希函数转换成101,而如果设置数据分组的组数为4,那么通过公式101%4得其余数为1。
步骤S13,根据预设的余数与数据分组的对应关系确认所述session信息所在的数据分组。
在实际中,如果将需要将各用户分为N个数据分组,那么可使一个余数对应一个数据分组。比如前述将各用户分为4个数据分组,那么可使整数除以4的余数1对应Group1,余数2对应Group2,余数3对应Group3,余数0对应Group4。
那么前述例子中用户id为wy-1的用户即被分为Group1。
步骤240,根据所述数据分组与存储服务器的对应关系,将包括所述目标用户的用户标识的数据包发送给所在存储服务器。
在实际中,数据分组与专门存储session信息的存储服务器存在对应关系。如果只设置一台存储服务器,那么所有数据分组就只在该台服务器。如果设置多台服务器,那么可将数据分组分散到其中的几个服务器中,比如前述的4个Group,那么如果设置2台存储服务器,那么可设置Group1和Group2对应其中一台存储服务器,剩余两个Group对应剩余一台存储服务器;如果设置4台存储服务器,那么可设置每个Group对应一台存在服务器。
优选的,所述每个数据分组至少包括一个数据块,每个所述数据块存储M个相同的session信息,所述同一数据分组的任意两个数据块不在同一存储服务器中。
即当将session信息切分到不同的Group时,可在每个Group设置多个GDS块(Group Data Storage,数据块),每个GDS存储相同的分到数据分组的session信息。比如前述的4个数据分组,如果每个数据分组设置两个GDS块,那么对于存储服务器的配置可以有多种方案,比如设置4台存储服务器A、B、C、D,存储服务器A和B存放Group1和Group2的数据块,存储服务器C和D存放Group3和Group4的数据块,如此既将原来在同一个服务器内存中存储的session信息分别存储在了两个服务器中,并且每个数据分组因为该Group的数据块在不同的存储服务器中,实现了同一份session数据信息的冗余备份,再某一台存储服务器挂掉时,某个数据分组的session信息可从相应的其他服务器中读取session信息。
那么根据Group与存储服务器的对应关系,即可将所述用户标识发送到对应的存储服务器。
优选的,当一个数据分组通过多个数据块对应多个存储服务器时:将包括session信息的数据包随机发送给所述多个存储服务器中的一个。
比如前述例子中,存储服务器A和B存放Group1和Group2的数据块,存储服务器C和D存放Group3和Group4的数据块。那么Group1和Group2对应存储服务器A和B。而对于前述用户id为wy-1的用户,IM应用服务器对其建立的session被分为Group1,那么该session信息可由IM应用服务器随机发送给存储服务器A和B中的一个。IM服务器端选择时可用“random”函数进行选择。比如,如果IM服务器端随机选择了存储服务器A,那么用户id为wy-1即被根据与存储服务器约定的协议打包,然后通过TCP/IP等协议发送到存储服务器A中。
步骤250,存储服务器从所述数据包中解析出用户标识,当所述用户表示对应的session信息存在时,则根据用户标识提取相应session信息返回至即时通讯应用服务器端。
在实际中,对应一个用户的session信息包括了session id,用户id,用户端IP,用户端类型等。即一个用户id对应一个用户的session信息。如此,即可根据用户id提取相应的session信息。
存储服务器接收到包括用户id的数据包后,根据协议解析出用户id,在根据用户id去查找相应的session信息。
在实际中,如果用户不在线,那么存储服务器中是不会存在该用户的session信息的。比如前述用户A要发送消息给用户B,用户B的用户id为wy-1,如果用户B不在线,那么存储服务器中就不会存在用户B的session信息。所以存储服务器解析出用户id后,会首先判断本地是否存在该用户id对应的session信息,如果不存在则返回该用户不在线的信息给IM应用服务器。如果存在,则根据用户id提取相应的session信息返回至IM应用服务器端。
参照图3,其示出了本申请一种session信息创建系统的结构示意图,包括:
IM应用服务器端310和存储服务器端320;
所述的IM应用服务器端310包括:
请求接收模块311,用于接收用户的连接请求;
判断生成模块312,根据用户的连接请求,在即时通讯应用服务器端对所述用户生成相应session信息;
分组确认模块313,用于通过所述连接请求中的用户标识确定所述session信息所在的数据分组;
信息发送模块314,用于根据所述数据分组与至少一个存储服务器的对应关系将包括所述session信息的数据包发送给所在存储服务器;
所述存储服务器端320,用于从所述数据包中解析出session信息并进行存储。
优选的,所述分组确认模块包括:
哈希子模块,用于通过哈希函数将所述用户标识转换为一个整数;
取余子模块,用于将所述整数除以所述数据分组的组数N,并提取计算后的余数;
确认子模块,用于根据余数与数据分组的对应关系确认所述session信息所在的数据分组。
优选的,所述每个数据分组至少包括一个数据块,每个所述数据块存储M个相同的session信息,所述同一数据分组的任意两个数据块不在同一存储服务器中。
优选的,当一个数据分组通过多个数据块对应多个存储服务器时:
所述的发送模块还用于将包括session信息的数据包随机发送给所述多个存储服务器中的一个;
所述的存储服务器端还用于同步更新其余对应该数据分组的存储服务器中的session信息。
参照图4,其示出了本申请一种session信息读取系统的结构示意图,包括:
IM应用服务器端410和存储服务器端420;
所述的IM应用服务器端包括410:
请求接收模块411,用于接收用户的信息发送请求;
解析模块412,用于在即时通讯应用服务器端解析所述发送请求中对应目标用户的用户标识;
分组确定模块413,用于通过所述目标用户的用户标识确定相应session信息所在的数据分组;
信息发送模块414,用于根据所述数据分组与存储服务器的对应关系,将包括所述目标用户的用户标识的数据包发送给所在存储服务器;
所述存储服务器端420用于从所述数据包中解析出用户标识,当所述用户表示对应的session信息存在时,则根据用户标识提取相应session信息返回至即时通讯应用服务器端。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本申请所提供的一种session信息创建方法和系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种session信息创建方法,其特征在于,包括:
接收用户的连接请求;
根据用户的连接请求,在即时通讯应用服务器端对所述用户生成相应session信息;
通过所述连接请求中的用户标识确定所述session信息所在的数据分组;
根据所述数据分组与至少一个存储服务器的对应关系将包括所述session信息的数据包发送给所在存储服务器;
存储服务器从所述数据包中解析出session信息并进行存储;
针对每个用户采用上述步骤创建session信息,以将所述即时通讯应用服务器的所有在线用户的session信息都存储在所述的至少一个存储服务器上。
2.根据权利要求1所述的方法,其特征在于,通过用户标识确定所述session信息所在的数据分组的方法包括:
通过哈希函数将所述用户标识转换为一个整数;
将所述整数除以所述数据分组的组数N,并提取计算后的余数;
根据预设的余数与数据分组的对应关系确认所述session信息所在的数据分组。
3.根据权利要求1所述的方法,其特征在于:
所述每个数据分组至少包括一个数据块,每个所述数据块存储M个相同的session信息,所述同一数据分组的任意两个数据块不在同一存储服务器中。
4.根据权利要求3所述的方法,其特征在于,当一个数据分组通过多个数据块对应多个存储服务器时:
将包括session信息的数据包随机发送给所述多个存储服务器中的一个;
所述存储服务器同步更新其余对应该数据分组的存储服务器中的session信息。
5.一种session信息读取方法,其特征在于,包括:
接收用户的信息发送请求;
在即时通讯应用服务器端解析所述发送请求中对应目标用户的用户标识;
通过所述目标用户的用户标识确定相应session信息所在的数据分组;
根据所述数据分组与存储服务器的对应关系,将包括所述目标用户的用户标识的数据包发送给所在存储服务器;
存储服务器从所述数据包中解析出所述用户标识,当所述用户表示对应的session信息存在时,则根据用户标识提取相应session信息返回至即时通讯应用服务器端。
6.一种session信息创建系统,其特征在于,包括:
即时通讯应用服务器端和存储服务器端;
所述的即时通讯应用服务器端包括:
请求接收模块,用于接收用户的连接请求;
判断生成模块,根据用户的连接请求,在即时通讯应用服务器端对所述用户生成相应session信息;
分组确认模块,用于通过所述连接请求中的用户标识确定所述session信息所在的数据分组;
信息发送模块,用于根据所述数据分组与至少一个存储服务器的对应关系将包括所述session信息的数据包发送给所在存储服务器;
所述存储服务器端,用于从所述数据包中解析出session信息并进行存储。
7.根据权利要求6所述的系统,其特征在于,所述分组确认模块包括:
哈希子模块,用于通过哈希函数将所述用户标识转换为一个整数;
取余子模块,用于将所述整数除以所述数据分组的组数N,并提取计算后的余数;
确认子模块,用于根据余数与数据分组的对应关系确认所述session信息所在的数据分组。
8.根据权利要求6所述的系统,其特征在于:
所述每个数据分组至少包括一个数据块,每个所述数据块存储M个相同的session信息,所述同一数据分组的任意两个数据块不在同一存储服务器中。
9.根据权利要求8所述的系统,其特征在于,当一个数据分组通过多个数据块对应多个存储服务器时:
所述的发送模块还用于将包括session信息的数据包随机发送给所述多个存储服务器中的一个;
所述的存储服务器端还用于同步更新其余对应该数据分组的存储服务器中的session信息。
10.一种session信息读取系统,其特征在于,包括:
即时通讯应用服务器端和存储服务器端;
所述的即时通讯应用服务器端包括:
请求接收模块,用于接收用户的信息发送请求;
解析模块,用于在即时通讯应用服务器端解析所述发送请求中对应目标用户的用户标识;
分组确定模块,用于通过所述目标用户的用户标识确定相应session信息所在的数据分组;
信息发送模块,用于根据所述数据分组与存储服务器的对应关系,将包括所述目标用户的用户标识的数据包发送给所在存储服务器;
所述存储服务器端用于从所述数据包中解析出用户标识,当所述用户表示对应的session信息存在时,则根据用户标识提取相应session信息返回至即时通讯应用服务器端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104519610A CN102571575A (zh) | 2011-12-29 | 2011-12-29 | 一种session 信息创建方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104519610A CN102571575A (zh) | 2011-12-29 | 2011-12-29 | 一种session 信息创建方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102571575A true CN102571575A (zh) | 2012-07-11 |
Family
ID=46416076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104519610A Pending CN102571575A (zh) | 2011-12-29 | 2011-12-29 | 一种session 信息创建方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102571575A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357222A (zh) * | 2015-11-27 | 2016-02-24 | 国网信息通信产业集团有限公司 | 一种分布式Session管理中间件 |
CN105407029A (zh) * | 2014-08-06 | 2016-03-16 | 阿里巴巴集团控股有限公司 | 一种账号分流方法及通信终端 |
CN107070989A (zh) * | 2017-03-06 | 2017-08-18 | 北京潘达互娱科技有限公司 | 通信方法和系统 |
CN107154982A (zh) * | 2017-06-15 | 2017-09-12 | 郑州云海信息技术有限公司 | 一种审计日志记录的方法及系统 |
CN108875003A (zh) * | 2018-06-14 | 2018-11-23 | 广州谱道网络科技有限公司 | 一种数据定位方法及装置 |
CN108924266A (zh) * | 2018-08-24 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种基于分布式文件系统的客户端请求分离管理方法及装置 |
CN110673895A (zh) * | 2019-09-29 | 2020-01-10 | 浙江中控技术股份有限公司 | 一种Hibernate创建SessionFactory的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193089A (zh) * | 2006-11-20 | 2008-06-04 | 阿里巴巴公司 | 有状态会话系统及其实现方法 |
CN101299731A (zh) * | 2008-05-09 | 2008-11-05 | 国网信息通信有限公司 | 基于Web的即时通讯方法及装置 |
CN101364930A (zh) * | 2008-09-24 | 2009-02-11 | 深圳市金蝶中间件有限公司 | 会话控制方法、装置及系统 |
CN201682522U (zh) * | 2010-02-08 | 2010-12-22 | 阿里巴巴集团控股有限公司 | 会话信息存储系统及应用服务器 |
CN102006330A (zh) * | 2010-12-01 | 2011-04-06 | 北京瑞信在线系统技术有限公司 | 分布式缓存系统、数据的缓存方法及缓存数据的查询方法 |
-
2011
- 2011-12-29 CN CN2011104519610A patent/CN102571575A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193089A (zh) * | 2006-11-20 | 2008-06-04 | 阿里巴巴公司 | 有状态会话系统及其实现方法 |
CN101299731A (zh) * | 2008-05-09 | 2008-11-05 | 国网信息通信有限公司 | 基于Web的即时通讯方法及装置 |
CN101364930A (zh) * | 2008-09-24 | 2009-02-11 | 深圳市金蝶中间件有限公司 | 会话控制方法、装置及系统 |
CN201682522U (zh) * | 2010-02-08 | 2010-12-22 | 阿里巴巴集团控股有限公司 | 会话信息存储系统及应用服务器 |
CN102006330A (zh) * | 2010-12-01 | 2011-04-06 | 北京瑞信在线系统技术有限公司 | 分布式缓存系统、数据的缓存方法及缓存数据的查询方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105407029A (zh) * | 2014-08-06 | 2016-03-16 | 阿里巴巴集团控股有限公司 | 一种账号分流方法及通信终端 |
CN105407029B (zh) * | 2014-08-06 | 2019-10-22 | 阿里巴巴集团控股有限公司 | 一种账号分流方法及通信终端 |
CN105357222A (zh) * | 2015-11-27 | 2016-02-24 | 国网信息通信产业集团有限公司 | 一种分布式Session管理中间件 |
CN107070989A (zh) * | 2017-03-06 | 2017-08-18 | 北京潘达互娱科技有限公司 | 通信方法和系统 |
CN107154982A (zh) * | 2017-06-15 | 2017-09-12 | 郑州云海信息技术有限公司 | 一种审计日志记录的方法及系统 |
CN107154982B (zh) * | 2017-06-15 | 2020-05-29 | 郑州云海信息技术有限公司 | 一种审计日志记录的方法及系统 |
CN108875003A (zh) * | 2018-06-14 | 2018-11-23 | 广州谱道网络科技有限公司 | 一种数据定位方法及装置 |
CN108924266A (zh) * | 2018-08-24 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种基于分布式文件系统的客户端请求分离管理方法及装置 |
CN110673895A (zh) * | 2019-09-29 | 2020-01-10 | 浙江中控技术股份有限公司 | 一种Hibernate创建SessionFactory的方法及装置 |
CN110673895B (zh) * | 2019-09-29 | 2022-05-27 | 浙江中控技术股份有限公司 | 一种Hibernate创建SessionFactory的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102571575A (zh) | 一种session 信息创建方法、装置和系统 | |
CN108200165B (zh) | 请求传输系统、方法、装置及存储介质 | |
CN101997759B (zh) | 一种业务实现方法及业务系统 | |
CN103001860A (zh) | 一种融合通信Web即时消息实现系统 | |
KR102208935B1 (ko) | 데이터 교환을 위한 컨텍스트를 설정하는 http 프로토콜을 통한 메시징 api | |
CN108200158B (zh) | 请求传输系统、方法、装置及存储介质 | |
US20120297031A1 (en) | Anonymous Signalling | |
WO2016186530A1 (en) | Systems and methods for determining routing information for a network request | |
CN110430274A (zh) | 一种基于云存储的文件下载方法及系统 | |
CN102790798A (zh) | 一种内容分发网络中透明代理实现方法、设备及系统 | |
CN104378436A (zh) | 一种基于服务器推送的信息推送系统及推送方法 | |
CN103401946A (zh) | Http上传加速方法和系统 | |
CN104468852A (zh) | 客户端选择ip链接地址的方法、装置及系统 | |
CN103885973B (zh) | 一种基于Web引擎的远程过程调用系统及实现方法 | |
CN102394944B (zh) | 一种Web访问中的IP地址库修正方法和设备 | |
CN103580988A (zh) | 消息接收、推送、传输的方法、装置、服务器组及系统 | |
CN103024085A (zh) | 一种处理p2p节点请求的系统及方法 | |
WO2017161965A1 (zh) | 一种动态域名系统dns重定向方法、装置及系统 | |
US11843642B1 (en) | Serverless signaling in peer-to-peer session initialization | |
CN110392069B (zh) | Cdn业务调度处理方法及cdn服务器 | |
EP3751824A1 (en) | Using dns to communicate mp-tcp capability of server devices | |
CN104283972B (zh) | 基于浏览器的消息推送方法、设备和系统 | |
CN103731516A (zh) | 基于嵌套视图的dns解析方法及其系统 | |
US20150067066A1 (en) | Provisioning Communication Services using Proxy Server in a Cloud | |
CN105721274B (zh) | 一种多种即时通讯的融合方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120711 |