CN105376147B - 即时通讯消息路由寻址方法、接入服务器及系统 - Google Patents
即时通讯消息路由寻址方法、接入服务器及系统 Download PDFInfo
- Publication number
- CN105376147B CN105376147B CN201510964511.XA CN201510964511A CN105376147B CN 105376147 B CN105376147 B CN 105376147B CN 201510964511 A CN201510964511 A CN 201510964511A CN 105376147 B CN105376147 B CN 105376147B
- Authority
- CN
- China
- Prior art keywords
- access server
- instant communication
- server
- communication user
- address
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/48—Message addressing, e.g. address format or anonymous messages, aliases
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种即时通讯消息路由寻址方法、接入服务器及系统,该方法包括:接入服务器侦测到即时通讯用户登录或退出登录时,向相应的路由查找服务器发送相应的路由更新指示消息,以便该路由查找服务器更新其本地存储的消息路由表,其中,该接入服务器的数量为至少两个;该消息路由表用于存储与该路由查找服务器关联且已登录的各即时通讯用户最新登录的接入服务器地址;当接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,第一接入服务器从相应的路由查找服务器中查找该第二即时通讯用户登录的第二接入服务器的地址,根据查找到的第二接入服务器的地址转发该即时通讯消息。本发明技术方案使得接入服务器具备更好的伸缩性。
Description
技术领域
本发明涉及通讯技术领域,具体涉及一种即时通讯消息路由寻址方法、接入服务器及系统。
背景技术
随着互联网技术的发展,互联网不断渗入各个行业,现在差不多已成为类似于水和电一样,变成人们生活中不可或缺的一部分。很多互联网即时通讯工具都需要支撑上亿级的同时在线用户,如此庞大的用户基数,通常需要上百台或上千台或更多的服务器共同提供服务,如此一来互为好友的不同用户可能分散连接于不同的服务器,而他们之间很多时候是需要进行传递消息的。好友之间的聊天可以采用双方直接建立通信通道的方式,也可以采用服务器转发的方式,由于政府部门对网络传播等的监管需求,现在普遍采用的通信方式都是后者。因此在传递消息时,如何快速寻找到当前对方所登录的服务器地址,并将消息传送过去,就变得十分重要了。
为了缩短消息路由的时间,有些采用静态划分路由寻址的方式。所谓静态划分路由寻址就是通过对用户ID(ID即标识符)的分段,事先固定好路由映射,将同一个用户每次都分流到同一个服务器上,这样就可以直接通过简单的取模运算来寻找消息接收方所在的服务器地址。这种方式虽然实现简单,但有些情况下可能会极大的浪费服务器的资源。因为这种方式有可能造成有些服务器很忙碌,有一些服务器却很闲,没能达到很好的负载均衡;且所需要服务器的数量将会是最大化的,比如注册用户数为2个亿,但可能经统计,同时在线的用户,最多就是1个亿,但由于采用的是静态划分,只具备扩张性,却不具备缩小性,此时所需要的服务器集群数必须时刻能够支持2个亿的用户数,从而造成服务器资源的严重浪费,也加大运维运营成本。
发明内容
本发明提供一种即时通讯消息路由寻址方法、接入服务器及系统,使得接入服务器具备更好的伸缩性。
本发明第一方面提供一种即时通讯消息路由寻址方法,上述方法包括:
接入服务器侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息,以便上述路由查找服务器根据接收到的上述路由更新指示消息更新上述路由查找服务器本地存储的消息路由表,其中,上述接入服务器的数量为至少两个;上述消息路由表用于存储与上述路由查找服务器关联且已登录的各上述即时通讯用户最新登录的接入服务器地址;
当接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,第一接入服务器从与上述第二即时通讯用户关联的路由查找服务器中查找上述第二即时通讯用户登录的第二接入服务器的地址,其中,上述第一即时通讯用户为当前登录上述第一接入服务器的即时通讯用户;
若查找到上述第二接入服务器的地址,则上述第一接入服务器将上述即时通讯消息转发至上述第二接入服务器,以供上述第二接入服务器将上述即时通讯消息发送至上述第二即时通讯用户。
基于本发明第一方面,在第一种可能的实现方式中,若查找到上述第二接入服务器的地址,则上述方法还包括:
上述第一接入服务器将上述第二接入服务器的地址记录在本地缓存中。
基于本发明第一方面的第一种可能的实现方式,在第二种可能的实现方式中,上述第一接入服务器从与所述第二即时通讯用户关联的路由查找服务器中查找所述第二即时通讯用户登录的第二接入服务器的地址之前还包括:
上述第一接入服务器查询本地缓存中是否存在有效记录的上述第二接入服务器的地址;
若存在,则上述第一接入服务器根据查询到的上述第二接入服务器的地址转发上述即时通讯消息;
若不存在,则上述第一接入服务器执行上述从与上述第二即时通讯用户关联的路由查找服务器中查找上述第二接入服务器的地址的步骤以及后续步骤;
其中,上述有效记录的上述第二接入服务器的地址是指在查询时间点之前的预设时间段内记录的上述第二即时通讯用户登录的接入服务器的地址。
基于本发明第一方面,或者本发明第一方面的第一种可能的实现方式,或者本发明第一方面的第二种可能的实现方式,在第三种可能的实现方式中,上述接入服务器侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息,包括:
上述接入服务器侦测到即时通讯用户登录或退出登录时,获取当前登录或退出登录的即时通讯用户的账号;
向与上述账号所在的账号区间对应的路由查找服务器发送相应的路由更新指示消息;
其中,每个账号区间对应一路由查找服务器,且不同的账号区间对应不同的路由查找服务器。
本发明第二方面提供一种接入服务器,包括:
更新指示消息发送单元,用于在侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息,以便上述路由查找服务器根据接收到的上述路由更新指示消息更新上述路由查找服务器本地存储的消息路由表,其中,上述接入服务器的数量为至少两个,上述消息路由表用于存储与上述路由查找服务器关联且已登录的各上述即时通讯用户最新登录的接入服务器地址;
接收单元,用于接收即时通讯消息;
查找单元,用于当上述接收单元接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,从与上述第二即时通讯用户关联的路由查找服务器中查找上述第二即时通讯用户登录的另一接入服务器的地址,其中,上述第一即时通讯用户为当前登录上述接入服务器的即时通讯用户;
转发单元,用于当上述查找单元查找到上述另一接入服务器的地址时,将上述即时通讯消息转发至上述另一接入服务器,以供上述另一接入服务器将上述即时通讯消息发送至上述第二即时通讯用户。
基于本发明第二方面,在第一种可能的实现方式中,上述接入服务器还包括:记录单元,用于当上述查找单元查找到上述另一接入服务器的地址时,将查找到的上述另一接入服务器的地址记录在本地缓存中。
基于本发明第二方面的第一种可能的实现方式,在第二种可能的实现方式中,上述接入服务器还包括:
查询单元,用于查询本地缓存中是否存在有效记录的上述另一接入服务器的地址;
上述转发单元具体还用于:当上述查询单元查询到本地缓存中存在有效记录的上述另一接入服务器的地址时,根据查询到的上述另一接入服务器的地址转发上述即时通讯消息;
上述查找单元在上述查询单元查询到本地缓存中不存在有效记录的上述另一接入服务器的地址时触发;
其中,上述有效记录的上述另一接入服务器的地址是指在查询时间点之前的预设时间段内记录的上述第二即时通讯用户登录的接入服务器的地址。
基于本发明第二方面,或者本发明第二方面的第一种可能的实现方式,或者本发明第二方面的第二种可能的实现方式,在第三种可能的实现方式中,上述接入服务器还包括:
获取单元,用于在侦测到即时通讯用户登录或退出登录时,获取当前登录或退出登录的即时通讯用户的账号;
上述更新指示消息发送单元,具体用于:向与上述账号所在的账号区间对应的路由查找服务器发送相应的路由更新指示消息;
其中,每个账号区间对应一路由查找服务器,且不同的账号区间对应不同的路由查找服务器。
本发明第三方面提供一种即时通讯消息路由寻址系统,包括:至少一个路由查找服务器,以及至少两个接入服务器;其中,上述接入服务器为如本发明第二方面或者基于本发明第二方面的任一可能的实现方式中的接入服务器。
基于本发明第三方面,在第一种可能的实现方式中,上述即时通讯消息路由寻址系统还包括:分发服务器;
上述分发服务器用于:基于负载均衡原则和各个上述接入服务器的实时负载大小,为需要登录上述接入服务器的即时通讯用户分配一上述接入服务器。
由上可见,本发明中存在至少两个接入服务器,并且,接入服务器在侦测到即时通讯用户登录或退出登录时,向相应的路由查找服务器发送相应的路由更新指示消息,以实现在路由查找服务器上对消息路由表进行更新维护,当有即时通讯用户(例如第一即时通讯用户)向另一即时通讯用户(例如第二即时通讯用户)发送即时通讯消息时,通过路由查找服务器查找该另一即时通讯用户登录的接入服务器的地址,以此实现接入服务器的动态路由寻址。本发明方案无需事先固定好路由映射,因此,接入服务器具备更好的伸缩性,使得接入服务器的资源也能够根据实际的需求被更充分地利用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种即时通讯消息路由寻址方法一实施例流程示意图;
图2为本发明提供的一种即时通讯消息路由寻址方法另一实施例流程示意图;
图3为本发明提供的一种接入服务器一实施例结构示意图;
图4为本发明提供的一种即时通讯消息路由寻址系统一实施例结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种即时通讯消息路由寻址方法,该方法包括:接入服务器侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息,以便上述路由查找服务器根据接收到的上述路由更新指示消息更新上述路由查找服务器本地存储的消息路由表,其中,上述接入服务器的数量为至少两个;上述消息路由表用于存储与上述路由查找服务器关联且已登录的各即时通讯用户最新登录的接入服务器地址;当接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,第一接入服务器从与上述第二即时通讯用户关联的路由查找服务器中查找上述第二即时通讯用户登录的第二接入服务器的地址,其中,上述第一即时通讯用户为当前登录上述第一接入服务器的即时通讯用户;若查找到上述第二接入服务器的地址,则上述第一接入服务器将上述即时通讯消息转发至上述第二接入服务器,以供上述第二接入服务器将上述即时通讯消息发送至上述第二即时通讯用户。本发明实施例还提供相应的接入服务器和系统,以下分别进行详细说明。
实施例一
请参阅图1,本发明实施例中的即时通讯消息路由寻址方法包括:
步骤101、接入服务器侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息,以便上述路由查找服务器根据接收到的路由更新指示消息更新上述路由查找服务器本地存储的消息路由表;
本发明实施例中,接入服务器的数量为至少两个,各即时通讯用户每次登录的接入服务器非固定,也即,即时通讯用户与登陆的接入服务器之间无固定的路由映射,当即时通讯用户需要登陆接入服务器时,为该即时通讯用户动态分配接入服务器。可选地,部署一个或多个分发服务器,通过分发服务器的分流为即时通讯用户分配合适的接入服务器,具体的,由分发服务器基于负载均衡原则和各个接入服务器的实时负载大小,为需要登录接入服务器的即时通讯用户分配一接入服务器,以使得各个接入服务器的资源被更好地利用。当然,本发明实施例中也可以通过其它方式为即时通讯用户分配接入服务器,例如,也可以通过随机分配的方式为即时通讯用户分配接入服务器,此处不作限定。
本发明实施例中,部署一个或多个路由查找服务器,在各路由查找服务器中维护一消息路由表,该消息路由表用于存储与上述路由查找服务器关联且已登录的各即时通讯用户最新登录的接入服务器地址。为了实现消息路由表的更新维护,各接入服务器在侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息。例如,当有即时通讯用户登录时,向与当前登录的即时通讯用户关联的路由查找服务器发送指示该即时通讯用户登录该接入服务器的第一路由更新指示消息,以便上述路由查找服务器根据该第一路由更新指示消息,在该路由查找服务器本地维护的消息路由表中更新该即时通讯用户登录的接入服务器的地址;又例如,当有即时通讯用户退出登录时,向与当前登录的即时通讯用户关联的路由查找服务器发送指示该即时通讯用户退出登录该接入服务器的第二路由更新指示消息,以便上述路由查找服务器根据该第二路由更新指示消息,在该路由查找服务器本地维护的消息路由表中删除该即时通讯用户登录该接入服务器的记录。
可选的,通过如下方式将即时通讯用户与路由查找服务器关联:接入服务器根据即时通讯用户的账号进行分段划分,每个账号区间对应一路由查找服务器,且不同的账号区间对应不同的路由查找服务器。接入服务器在侦测到即时通讯用户登录或退出登录时,获取当前登录或退出登录的即时通讯用户的账号,向与该账号所在的账号区间对应的路由查找服务器发送相应的路由更新指示消息。举例说明,假设即时通讯用户的账号是一个从1开始的整数,则一种路由查找服务器分段划分的方式可以如表1所示:
表1
账号区间 | 对应的路由查找服务器 |
1~2500000 | 路由查找服务器1 |
2500001~5000000 | 路由查找服务器2 |
5000001~8000000 | 路由查找服务器3 |
... | ... |
假设账号为230000的即时通讯用户登录或退出接入服务器,则该接入服务器根据该即时通讯用户的账号和表1,即可获知与该即时通讯用户关联的路由查找服务器为路由服务器1,则该接入服务器将向路由服务器1发送相应的路由更新指示消息。上述关联方式可以建立一个分布式的内存级别的路由查找服务器集群,通常只需要少数的路由查找服务器,进而分散路由查找的压力。具体地,可以采用类似Redis这种key-value的内存数据库来充当路由查找服务器,查询速度快。当然,本发明实施例中也可以通过其它方式将即时通讯用户与路由查找服务器进行关联,此处不作限定。
步骤102、当接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,第一接入服务器从与上述第二即时通讯用户关联的路由查找服务器中查找上述第二即时通讯用户登录的第二接入服务器的地址;
本发明实施例中,上述第一即时通讯用户为当前登录上述第一接入服务器的即时通讯用户。由于即时通讯用户之间传递的即时通讯消息需要通过各自的接入服务器实现转发,因此,当第一即时通讯用户向另一即时通讯用户(例如上述第二即时通讯用户)发送即时通讯消息时,该第一即时通讯用户当前登录的第一接入服务器需要先确定出上述第二即时通讯用户登录的第二接入服务器的地址。在步骤101基础上,只要上述第二即时通讯用户当前处于登录状态,与该上述第二即时通讯用户关联的路由查找服务器中存储的消息路由表中必然存在该第二接入服务器地址的记录,因此,在步骤102中,当上述第一接入服务器接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,上述第一接入服务器从与上述第二即时通讯用户关联的路由查找服务器中查找上述第二接入服务器的地址。
103、若查找到上述第二接入服务器的地址,则上述第一接入服务器将上述即时通讯消息转发至上述第二接入服务器;
如步骤102中的描述,只要上述第二即时通讯用户当前处于登录状态,与该上述第二即时通讯用户关联的路由查找服务器中存储的消息路由表中必然存在上述第二接入服务器的地址的记录,在步骤103中,当从与上述第二即时通讯用户关联的路由查找服务器中查找到上述第二接入服务器的地址时,表明该第二即时通讯用户当前处于登录状态且最新登陆的接入服务器的地址为查找到的第二接入服务器的地址,进一步,上述第一接入服务器根据查找到的上述第二接入服务器的地址,即可将上述即时通讯消息转发至上述第二接入服务器,以供上述第二接入服务器将上述即时通讯消息发送至上述第二即时通讯用户,使得该第二即时通讯用户能够在所使用的用户终端(例如手机、平板电脑、掌上电脑等)上查看到该即时通讯消息,具体地,上述第二接入服务器将该即时通讯消息下发给上述第二即时通讯用户的过程可以参照已有技术实现,此处不再赘述。
在另一种可能的场景中,若查找不到上述第二接入服务器的地址,则表明该第二即时通讯用户当前处于离线状态,此时上述第一接入服务器可将上述即时通讯消息作为离线消息进行处理,离线消息会保存至相应的离线消息数据库,等该第二即时通讯用户再次登录上线时,该第二即时通讯用户登录的接入服务器将离线消息从相应的数据库取出,再转发给该第二即时通讯用户。当然,离线消息也可以采用内存级别的缓存服务器来存储,只是在消息量大且为了数据安全的情况且下,较多采用数据库来存储离线消息。接入服务器可以与数据库直接交互,也可用通过中间代理与数据库交互,此处不作限定。
具体地,离线消息保存至哪一个数据库中,也可以采用将即时通讯用户的帐号进行分段划分的方法来处理,即,每个账号区间对应一用于保存离线消息的数据库,且不同的账号区间对应不同的数据库。举例说明,假设即时通讯用户的账号是一个从1开始的整数,则一种数据库分段划分的方式可以如表2所示:
表2
账号区间 | 对应的数据库 |
1~2500000 | 数据库1 |
2500001~5000000 | 数据库2 |
5000001~8000000 | 数据库3 |
... | ... |
可选的,若查找到上述第二接入服务器的地址,则上述第一接入服务器进一步将查找到的上述第二接入服务器的地址记录在上述第一接入服务器的本地缓存中,以便后续直接从上述第一接入服务器的本地缓存中查找上述第二即时通讯用户登录的第二接入服务器的地址。考虑到即时通讯用户登录的接入服务器可能会有变动,因此,需要为本地缓存的记录增加时效性,即,只有在查询时间点之前的预设时间段内记录的即时通讯用户登录的接入服务器地址才视为有效记录,举例说明,假设预设时间段为10分钟,查询时间点为9:20,则只有在9:10 ̄9:20记录的即时通讯用户登录的接入服务器地址才视为有效记录,在9:10之前记录的即时通讯用户登录的接入服务器地址均视为无效记录。
需要说明的是,本发明实施例中的第一接入服务器为第一即时通讯用户登录的接入服务器的统称,同样的,第二接入服务器为第二即时通讯用户登录的接入服务器的统称,第一接入服务器和第二接入服务器均不限于特定的某一接入服务器,在不同的登陆时间,同一即时通讯用户所登陆的接入服务器可能有所不同,但在本发明实施例中,同一即时通讯用户在不同的登陆时间登陆的接入服务器的统称不变,例如,在不同的登陆时间,本发明实施例中的第一即时通讯用户登陆的接入服务器依然统称为第一接入服务器,而第二即时通讯用户登陆的接入服务器依然统称为第二接入服务器。并且,上述第一接入服务器和上述第二服务器中的“第一”和“第二”只是为区分不同即时通讯用户登陆的接入服务器,并不存在排序的限定。
由上可见,本发明中存在至少两个接入服务器,并且,接入服务器在侦测到即时通讯用户登录或退出登录时,向相应的路由查找服务器发送相应的路由更新指示消息,以实现在路由查找服务器上对消息路由表进行更新维护,当有即时通讯用户(例如第一即时通讯用户)向另一即时通讯用户(例如第二即时通讯用户)发送即时通讯消息时,通过路由查找服务器查找该另一即时通讯用户登录的接入服务器的地址,以此实现接入服务器的动态路由寻址。本发明方案无需事先固定好路由映射,因此,接入服务器具备更好的伸缩性,使得接入服务器的资源也能够根据实际的需求被更充分地利用。另外,所有的接入服务器是一个集群,既保证了即时通讯消息能够快速传递,又均衡利用好接入服务器的资源,提升了产品的效益。
实施例二
在实施例一的基础上,本发明实施例中接入服务器先在其本地缓存中查找第二即时通讯用户登陆的接入服务器地址。如图2所述,本发明实施例中的即时通讯消息路由寻址方法包括:
步骤201、接入服务器侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息,以便上述路由查找服务器根据接收到的路由更新指示消息更新上述路由查找服务器本地存储的消息路由表;
具体地,步骤201的具体实现可以参照实施例一中步骤101中的描述,此处不再赘述。
步骤202、当接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,第一接入服务器查询本地缓存中是否存在有效记录的上述第二即时通讯用户登录的第二接入服务器的地址;
本发明实施例中,上述第一即时通讯用户为当前登录上述第一接入服务器的即时通讯用户。在传递即时通讯消息的过程中,接入服务器会将从路由查找服务器查找到的即时通讯用户登录的接入服务器的地址更新在本地缓存中,以便当上述接入服务器再次接收到即时通讯消息时,在本地缓存中查询相应的即时通讯用户登录的接入服务器。考虑到即时通讯用户登录的接入服务器可能会有变动,因此,需要为本地缓存的记录增加时效性,即,只有在查询时间点之前的预设时间段内记录的即时通讯用户登录的接入服务器地址才视为有效记录,举例说明,假设预设时间段为10分钟,查询时间点为9:20,则只有在9:10 ̄9:20记录的即时通讯用户登录的接入服务器地址才视为有效记录,在9:10之前记录的即时通讯用户登录的接入服务器地址均视为无效记录。在本发明实施例中,当上述第一接入服务器接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,查询上述第一接入服务器本地缓存中是否存在有效记录的上述第二接入服务器的地址,如果存在,则进入步骤203,如果不存在(例如上述第一接入服务器本地缓存中不存在上述第二接入服务器的地址的记录,或者,上述第一接入服务器本地缓存中存在上述第二接入服务器的地址的记录但该记录为失效记录),则进入步骤204。其中,上述有效记录的上述第二接入服务器的地址是指在查询时间点之前的预设时间段内记录的上述第二即时通讯用户登录的接入服务器地址。
步骤203、上述第一接入服务器根据查询到的上述第二接入服务器的地址转发上述即时通讯消息;
当从本地缓存中查找到上述第二接入服务器的地址时,上述第一接入服务器即可根据查找到的上述第二接入服务器的地址,将上述即时通讯消息转发至上述第二接入服务器,以供上述第二接入服务器将上述即时通讯消息发送至上述第二即时通讯用户,使得该第二即时通讯用户能够在所使用的用户终端(例如手机、平板电脑、掌上电脑等)上查看到该即时通讯消息,具体地,上述第二接入服务器将该即时通讯消息下发给上述第二即时通讯用户的过程可以参照已有技术实现,此处不再赘述。
步骤204、上述第一接入服务器从与上述第二即时通讯用户关联的路由查找服务器中查找上述第二接入服务器的地址。
步骤205、若查找到上述第二接入服务器地址,则上述接入服务器根据查找到的上述第二接入服务器的地址转发上述即时通讯消息;
当从与上述第二即时通讯用户关联的路由查找服务器中查找到上述第二接入服务器的地址时,上述第一接入服务器根据查找到的上述第二接入服务器的地址,即可将上述即时通讯消息转发至上述第二接入服务器,以供上述第二接入服务器将上述即时通讯消息发送至上述第二即时通讯用户,使得该第二即时通讯用户能够在所使用的用户终端(例如手机、平板电脑、掌上电脑等)上查看到该即时通讯消息,具体地,上述第二接入服务器将该即时通讯消息下发给上述第二即时通讯用户的过程可以参照已有技术实现,此处不再赘述。
在另一种可能的场景中,若查找不到上述第二接入服务器的地址,则表明该第二即时通讯用户当前处于离线状态,此时上述第一接入服务器可将上述即时通讯消息作为离线消息进行处理,离线消息会保存至相应的离线消息数据库,等该第二即时通讯用户再次登录上线时,该第二即时通讯用户登录的接入服务器将离线消息从相应的数据库取出,再转发给该第二即时通讯用户。当然,离线消息也可以采用内存级别的缓存服务器来存储,只是在消息量大且为了数据安全的情况且下,较多采用数据库来存储离线消息。接入服务器可以与数据库直接交互,也可用通过中间代理与数据库交互,此处不作限定。
具体地,离线消息保存至哪一个数据库中,也可以采用将即时通讯用户的帐号进行分段划分的方法来处理,即,每个账号区间对应一用于保存离线消息的数据库,且不同的账号区间对应不同的数据库。
需要说明的是,本发明实施例中的第一接入服务器为第一即时通讯用户登录的接入服务器的统称,同样的,第二接入服务器为第二即时通讯用户登录的接入服务器的统称,第一接入服务器和第二接入服务器均不限于特定的某一接入服务器,在不同的登陆时间,同一即时通讯用户所登陆的接入服务器可能有所不同,但在本发明实施例中,同一即时通讯用户在不同的登陆时间登陆的接入服务器的统称不变,例如,在不同的登陆时间,本发明实施例中的第一即时通讯用户登陆的接入服务器依然统称为第一接入服务器,而第二即时通讯用户登陆的接入服务器依然统称为第二接入服务器。并且,上述第一接入服务器和上述第二服务器中的“第一”和“第二”只是为区分不同即时通讯用户登陆的接入服务器,并不存在排序的限定。
由上可见,本发明中存在至少两个接入服务器,并且,接入服务器在侦测到即时通讯用户登录或退出登录时,向相应的路由查找服务器发送相应的路由更新指示消息,以实现在路由查找服务器上对消息路由表进行更新维护,当有即时通讯用户(例如第一即时通讯用户)向另一即时通讯用户(例如第二即时通讯用户)发送即时通讯消息时,通过路由查找服务器查找该另一即时通讯用户登录的接入服务器的地址,以此实现接入服务器的动态路由寻址。本发明方案无需事先固定好路由映射,因此,接入服务器具备更好的伸缩性,使得接入服务器的资源也能够根据实际的需求被更充分地利用。另外,所有的接入服务器是一个集群,既保证了即时通讯消息能够快速传递,又均衡利用好接入服务器的资源,提升了产品的效益。
实施例三
本发明实施例提供一种接入服务器,请参阅图3,本发明实施例中的接入服务器300包括:更新指示消息发送单元301、接收单元302、查找单元303以及转发单元304。
更新指示消息发送单元301用于:在侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息,以便上述路由查找服务器根据接收到的上述路由更新指示消息更新上述路由查找服务器本地存储的消息路由表,其中,上述消息路由表用于存储与上述路由查找服务器关联且已登录的各即时通讯用户最新登录的接入服务器地址。本发明实施例中,上述接入服务器的数量为至少两个,各即时通讯用户每次登录的接入服务器非固定,也即,即时通讯用户与登陆的接入服务器之间无固定的路由映射,当即时通讯用户需要登陆接入服务器时,为该即时通讯用户动态分配接入服务器。可选地,部署一个或多个分发服务器,通过分发服务器的分流为即时通讯用户分配合适的接入服务器,具体的,由分发服务器基于负载均衡原则和各个接入服务器的实时负载大小,为需要登录接入服务器的即时通讯用户分配一接入服务器,以使得各个接入服务器的资源被更好地利用。当然,本发明实施例中也可以通过其它方式为即时通讯用户分配接入服务器,例如,也可以通过随机分配的方式为即时通讯用户分配接入服务器,此处不作限定。
接收单元302用于:接收即时通讯消息;
查找单元303用于:当接收单元302接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,从与上述第二即时通讯用户关联的路由查找服务器中查找上述第二即时通讯用户登录的另一接入服务器的地址,其中,上述第一即时通讯用户为当前登录上述接入服务器的即时通讯用户;
转发单元304用于:当查找单元303查找到上述另一接入服务器的地址时,将上述即时通讯消息转发至上述另一接入服务器,以供上述另一接入服务器将上述即时通讯消息发送至所述第二即时通讯用户。
可选的,本发明实施例中的接入服务器还包括:记录单元,用于当查找单元303查找到上述另一接入服务器的地址时,将查找到的上述另一接入服务器的地址记录在本地缓存中。
可选的,本发明实施例中接入服务器还包括:查询单元,用于查询本地缓存中是否存在有效记录的上述另一接入服务器的地址;转发单元304具体还用于:当上述查询单元查询到上述本地缓存中存在有效记录的上述另一接入服务器的地址时,根据查询到的上述另一接入服务器的地址转发上述即时通讯消息;查找单元303在上述查询单元查询到本地缓存中不存在有效记录的上述另一接入服务器的地址时触发;其中,上述有效记录的上述另一接入服务器的地址是指在查询时间点之前的预设时间段内记录的上述第二即时通讯用户登录的接入服务器的地址。
可选的,本发明实施例中的接入服务器还包括:获取单元,用于在侦测到即时通讯用户登录或退出登录时,获取当前登录或退出登录的即时通讯用户的账号;上述更新指示消息发送单元,具体用于:向与上述账号所在的账号区间对应的路由查找服务器发送相应的路由更新指示消息;其中,每个账号区间对应一路由查找服务器,且不同的账号区间对应不同的路由查找服务器。
应理解,本发明实施例中的接入服务器可以如上述方法实施例中提及的第一接入服务器,本发明实施例中的另一接入服务器可以如上述方法实施例中提及的第二接入服务器,可以用于实现上述方法实施例中的全部技术方案,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实施例中的相关描述,此处不再赘述。
由上可见,本发明中存在至少两个接入服务器,并且,接入服务器在侦测到即时通讯用户登录或退出登录时,向相应的路由查找服务器发送相应的路由更新指示消息,以实现在路由查找服务器上对消息路由表进行更新维护,当有即时通讯用户(例如第一即时通讯用户)向另一即时通讯用户(例如第二即时通讯用户)发送即时通讯消息时,通过路由查找服务器查找该另一即时通讯用户登录的接入服务器的地址,以此实现接入服务器的动态路由寻址。本发明方案无需事先固定好路由映射,因此,接入服务器具备更好的伸缩性,使得接入服务器的资源也能够根据实际的需求被更充分地利用。
实施例四
本发明实施例提供一种即时通讯消息路由寻址系统,请参阅图4,本发明实施例中的即时通讯消息路由寻址系统包括:至少一个路由查找服务器401,以及至少两个接入服务器402;
其中,接入服务器402可以为如实施例三中提及的接入服务器,路由查找服务器401可以为如实施例一或实施例二中提及的路由查找服务器。具体的,路由查找服务器401和接入服务器402的功能可以参照上述实施例一或实施例二中的相关描述,此处不再赘述。
进一步,本发明实施例中的即时通讯消息路由寻址系统还包括:分发服务器。上述分发服务器用于:基于负载均衡原则和各个接入服务器402的实时负载大小,为需要登录上述接入服务器的即时通讯用户分配一接入服务器402。
在本申请所提供的几个实施例中,应该理解到,所揭露的接入服务器和方法,可以通过其它的方式实现。例如,以上所描述的接入服务器实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,各单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
需要说明的是,对于前述的实施例一和实施例二,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种即时通讯消息路由寻址方法、接入服务器及系统的描述,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种即时通讯消息路由寻址方法,其特征在于,所述方法包括:
接入服务器侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息,以便所述路由查找服务器根据接收到的所述路由更新指示消息更新所述路由查找服务器本地存储的消息路由表,其中,所述接入服务器的数量为至少两个;所述接入服务器与所述即时通讯用户之间无固定路由映射;所述消息路由表用于存储与所述路由查找服务器关联且已登录的各所述即时通讯用户最新登录的接入服务器地址;
当接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,第一接入服务器从与所述第二即时通讯用户关联的路由查找服务器中查找所述第二即时通讯用户登录的第二接入服务器的地址,其中,所述第一即时通讯用户为当前登录所述第一接入服务器的即时通讯用户;
若查找到所述第二接入服务器的地址,则所述第一接入服务器将所述即时通讯消息转发至所述第二接入服务器,以供所述第二接入服务器将所述即时通讯消息发送至所述第二即时通讯用户。
2.根据权利要求1所述的方法,其特征在于,若查找到所述第二接入服务器的地址,则所述方法还包括:
所述第一接入服务器将所述第二接入服务器的地址记录在本地缓存中。
3.根据权利要求2所述的方法,其特征在于,所述第一接入服务器从与所述第二即时通讯用户关联的路由查找服务器中查找所述第二即时通讯用户登录的第二接入服务器的地址之前还包括:
所述第一接入服务器查询本地缓存中是否存在有效记录的所述第二接入服务器的地址;
若存在,则所述第一接入服务器根据查询到的第二接入服务器的地址转发所述即时通讯消息;
若不存在,则所述第一接入服务器执行所述从与所述第二即时通讯用户关联的路由查找服务器中查找所述第二接入服务器的地址的步骤以及后续步骤;
其中,所述有效记录的所述第二接入服务器的地址是指在查询时间点之前的预设时间段内记录的所述第二即时通讯用户登录的接入服务器的地址。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述接入服务器侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息,包括:
所述接入服务器侦测到即时通讯用户登录或退出登录时,获取当前登录或退出登录的即时通讯用户的账号;
向与所述账号所在的账号区间对应的路由查找服务器发送相应的路由更新指示消息;
其中,每个账号区间对应一路由查找服务器,且不同的账号区间对应不同的路由查找服务器。
5.一种接入服务器,其特征在于,所述接入服务器包括:
更新指示消息发送单元,用于在侦测到即时通讯用户登录或退出登录时,向与当前登录或退出登录的即时通讯用户关联的路由查找服务器发送相应的路由更新指示消息,以便所述路由查找服务器根据接收到的所述路由更新指示消息更新所述路由查找服务器本地存储的消息路由表,其中,所述接入服务器的数量为至少两个;所述接入服务器与所述即时通讯用户之间无固定路由映射;所述消息路由表用于存储与所述路由查找服务器关联且已登录的各所述即时通讯用户最新登录的接入服务器地址;
接收单元,用于接收即时通讯消息;
查找单元,用于当所述接收单元接收到第一即时通讯用户向第二即时通讯用户发送的即时通讯消息时,从与所述第二即时通讯用户关联的路由查找服务器中查找所述第二即时通讯用户登录的另一接入服务器的地址,其中,所述第一即时通讯用户为当前登录所述接入服务器的即时通讯用户;
转发单元,用于当所述查找单元查找到所述另一接入服务器的地址时,将所述即时通讯消息转发至所述另一接入服务器,以供所述另一接入服务器将所述即时通讯消息发送至所述第二即时通讯用户。
6.根据权利要求5所述的接入服务器,其特征在于,所述接入服务器还包括:记录单元,用于当所述查找单元查找到所述另一接入服务器的地址时,将查找到的所述另一接入服务器的地址记录在本地缓存中。
7.根据权利要求6所述的接入服务器,其特征在于,
所述接入服务器还包括:
查询单元,用于查询本地缓存中是否存在有效记录的所述另一接入服务器的地址;
所述转发单元具体还用于:当所述查询单元查询到本地缓存中存在有效记录的所述另一接入服务器的地址时,根据查询到的所述另一接入服务器的地址转发所述即时通讯消息;
所述查找单元在所述查询单元查询到本地缓存中不存在有效记录的所述另一接入服务器的地址时触发;
其中,所述有效记录的所述另一接入服务器的地址是指在查询时间点之前的预设时间段内记录的所述第二即时通讯用户登录的接入服务器的地址。
8.根据权利要求5至7任一项所述的接入服务器,其特征在于,所述接入服务器还包括:
获取单元,用于在侦测到即时通讯用户登录或退出登录时,获取当前登录或退出登录的即时通讯用户的账号;
所述更新指示消息发送单元,具体用于:向与所述账号所在的账号区间对应的路由查找服务器发送相应的路由更新指示消息;
其中,每个账号区间对应一路由查找服务器,且不同的账号区间对应不同的路由查找服务器。
9.一种即时通讯消息路由寻址系统,其特征在于,所述系统包括:至少一个路由查找服务器,以及至少两个接入服务器;
其中,所述接入服务器为如权利要求5至8任一项所述的接入服务器。
10.根据权利要求9所述的即时通讯消息路由寻址系统,其特征在于,所述即时通讯消息路由寻址系统还包括:分发服务器;
所述分发服务器用于:基于负载均衡原则和各个所述接入服务器的实时负载大小,为需要登录所述接入服务器的即时通讯用户分配一所述接入服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510964511.XA CN105376147B (zh) | 2015-12-18 | 2015-12-18 | 即时通讯消息路由寻址方法、接入服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510964511.XA CN105376147B (zh) | 2015-12-18 | 2015-12-18 | 即时通讯消息路由寻址方法、接入服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105376147A CN105376147A (zh) | 2016-03-02 |
CN105376147B true CN105376147B (zh) | 2019-08-02 |
Family
ID=55377968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510964511.XA Active CN105376147B (zh) | 2015-12-18 | 2015-12-18 | 即时通讯消息路由寻址方法、接入服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105376147B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881066B (zh) * | 2017-05-10 | 2021-08-27 | 腾讯科技(深圳)有限公司 | 一种路由请求的方法、接入服务器以及存储设备 |
CN108718272A (zh) * | 2018-05-10 | 2018-10-30 | 星络科技有限公司 | 消息路由转发方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090371A (zh) * | 2006-06-14 | 2007-12-19 | 阿里巴巴公司 | 一种即时通讯系统中用户信息管理的方法及系统 |
CN101163072A (zh) * | 2007-08-10 | 2008-04-16 | 林明辉 | 一种注册服务器自动选择最优路由登录通讯的方法 |
CN102098349A (zh) * | 2009-12-09 | 2011-06-15 | 中兴通讯股份有限公司 | 地址映射方法及接入业务节点 |
CN102611735A (zh) * | 2011-12-21 | 2012-07-25 | 奇智软件(北京)有限公司 | 一种应用服务的负载均衡方法及系统 |
-
2015
- 2015-12-18 CN CN201510964511.XA patent/CN105376147B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090371A (zh) * | 2006-06-14 | 2007-12-19 | 阿里巴巴公司 | 一种即时通讯系统中用户信息管理的方法及系统 |
CN101163072A (zh) * | 2007-08-10 | 2008-04-16 | 林明辉 | 一种注册服务器自动选择最优路由登录通讯的方法 |
CN102098349A (zh) * | 2009-12-09 | 2011-06-15 | 中兴通讯股份有限公司 | 地址映射方法及接入业务节点 |
CN102611735A (zh) * | 2011-12-21 | 2012-07-25 | 奇智软件(北京)有限公司 | 一种应用服务的负载均衡方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105376147A (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104125208B (zh) | 数据传输方法及装置 | |
CN101969468B (zh) | 查询服务器集群系统及查询方法 | |
CN101090371B (zh) | 一种即时通讯系统中用户信息管理的方法及系统 | |
CN103873451A (zh) | 一种数据同步的方法、设备和系统 | |
CN103313192A (zh) | 多屏分享的方法及系统 | |
US10430414B2 (en) | Method and apparatus for sharing environment context | |
WO2012103920A1 (en) | Distributed database | |
CN101616132A (zh) | 一种数据获取方法及其装置和系统 | |
CN102739808A (zh) | 云存储服务器、用户终端以及云端数据的传输系统及方法 | |
CN112953982B (zh) | 一种服务处理的方法、服务配置的方法以及相关装置 | |
CN108173952A (zh) | 一种内容分发网络cdn的数据访问方法和装置 | |
CN105095313A (zh) | 一种数据访问方法和设备 | |
CN104767690A (zh) | 一种流量调度装置及方法 | |
CN109669980A (zh) | 数据跨库访问方法及装置 | |
CN105376147B (zh) | 即时通讯消息路由寻址方法、接入服务器及系统 | |
CN104468805A (zh) | 消息路由装置和方法 | |
CN105141789A (zh) | 陌生号码标记方法和装置 | |
US10025859B2 (en) | Method and system for second-degree friend query | |
CN104519138A (zh) | 一种基于分布式ftp的数据传输方法及系统 | |
US20210297366A1 (en) | Resource distribution method and apparatus in internet of things, device, and storage medium | |
CN113067860B (zh) | 用于同步信息的方法、装置、设备、介质和产品 | |
CN109063140A (zh) | 一种数据查询方法、中转服务器及计算机可读存储介质 | |
CN102629919A (zh) | 即时通信中用以添加联系人的方法、客户端及系统 | |
CN105447000A (zh) | 一种事务消息的传输方法和设备 | |
CN105930519A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |