CN103731341B - 一种对即时通讯业务进行处理的方法及系统 - Google Patents

一种对即时通讯业务进行处理的方法及系统 Download PDF

Info

Publication number
CN103731341B
CN103731341B CN201310752590.9A CN201310752590A CN103731341B CN 103731341 B CN103731341 B CN 103731341B CN 201310752590 A CN201310752590 A CN 201310752590A CN 103731341 B CN103731341 B CN 103731341B
Authority
CN
China
Prior art keywords
server
user
master server
chat
agent equipment
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
Application number
CN201310752590.9A
Other languages
English (en)
Other versions
CN103731341A (zh
Inventor
古培昌
李牧
李佳林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN201310752590.9A priority Critical patent/CN103731341B/zh
Publication of CN103731341A publication Critical patent/CN103731341A/zh
Priority to PCT/CN2014/095357 priority patent/WO2015101260A1/zh
Application granted granted Critical
Publication of CN103731341B publication Critical patent/CN103731341B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种对即时通讯业务进行处理的方法及系统,属于互联网通信领域。该方法包括:选举服务器接收至少两个数据服务器发送的注册请求消息;选举服务器将第一次接收的注册请求信息对应的数据服务器设置为主服务器,将其他的数据服务器设置为从服务器,通过主服务器接收前端代理设备发送的即时通讯业务的数据并处理即时通讯业务;选举服务器监听主服务器和从服务器,当监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,将其中一个从服务器设置为新的主服务器,以通过新的主服务器接收前端代理设备发送的即时通讯业务的数据并处理即时通讯业务。本发明可以提高即时通讯业务的吞吐量。

Description

一种对即时通讯业务进行处理的方法及系统
技术领域
本发明涉及互联网通信领域,特别涉及一种对即时通讯业务进行处理的方法及系统。
背景技术
在互联网通信技术中,当用户使用某个即时通讯业务时,服务器需要对该即时通讯业务进行处理。
目前,提供了一种对即时通讯业务进行处理的方法,具体为:远程数据服务器包括主服务器和从服务器,主服务器与从服务器位于不同的机房中,且主服务器与即时通讯业务对应的分区服务器位于同一个机房中。终端向远程数据服务器中写入即时通讯业务的数据时,终端将该即时通讯业务的数据发送给分区服务器,分区服务器将该即时通讯业务的数据转发给主服务器;主服务器接收该即时通讯业务的数据,对该即时通讯业务的数据进行处理,将处理后的数据进行存储并将处理后的数据发送给从服务器,使从服务器将处理的数据进行存储。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于从服务器中存储的数据是主服务器发送的,并且当主服务器出现故障或者当分区服务器与主服务器之间的网络出现故障时,从服务器不能将接收的数据同步到其他的从服务器,所以无法为终端提供可靠的即时通讯业务;并且分区服务器需要将接收的即时通讯业务的数据从自身所在的机房发送到从服务器所在的机房,如此,变成了分区服务器跨机房写即时通讯业务的数据,影响了即时通讯业务的吞吐量。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种对即时通讯业务进行处理的方法及系统。所述技术方案如下:
一方面,提供了一种对即时通讯业务进行处理的方法,所述方法包括:
选举服务器接收至少两个数据服务器发送的注册请求消息;
所述选举服务器将第一次接收的注册请求信息对应的数据服务器设置为主服务器,将其他的数据服务器设置为从服务器,以通过所述主服务器接收前端代理设备发送的即时通讯业务的数据并处理所述即时通讯业务;
所述选举服务器监听所述主服务器和所述从服务器,当监听到所述主服务器出现故障或者当所述主服务器与所述前端代理设备之间的网络出现故障时,将其中一个从服务器设置为新的主服务器,以通过所述新的主服务器接收所述前端代理设备发送的即时通讯业务的数据并处理所述即时通讯业务。
另一方面,提供了一种对即时通讯业务进行处理的系统,所述系统包括:选举服务器和至少两个数据服务器;
所述选举服务器,用于接收所述至少两个数据服务器发送的注册请求消息;
所述选举服务器,用于将第一次接收的注册请求信息对应的数据服务器设置为主服务器,将其他的数据服务器设置为从服务器,以通过所述主服务器接收前端代理设备发送的即时通讯业务的数据并处理所述即时通讯业务;
所述选举服务器,用于监听所述主服务器和所述从服务器,当监听到所述主服务器出现故障或者当所述主服务器与所述前端代理设备之间的网络出现故障时,将其中一个从服务器设置为新的主服务器,以通过所述新的主服务器接收所述前端代理设备发送的即时通讯业务的数据并处理所述即时通讯业务。
在本发明实施例中,选举服务器将第一次接收的注册请求消息对应的数据服务器设置为主服务器,将其他的数据服务器设置为从服务器后,当前端代理设备接收到终端发送的即时通讯业务的数据时,将该即时通讯业务的数据发送给主服务器,通过主服务器对该即时通讯业务进行处理。当选举服务器监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,将其中一个从服务器设置为新的主服务器后,当前端代理设备再次接收到终端发送的即时通讯业务的数据时,该选举服务器直接将该即时通讯业务的数据发送给新的主服务器,通过该新的主服务器对该即时通讯业务进行处理。由于前端代理设备、主服务器和从服务器均位于不同的机房中,所以,当主服务器出现故障或者前端代理设备与主服务器之间的网络出现故障时,前端代理设备不需要将即时通讯业务的数据先发送到主服务器所在的机房再发送到新的主服务器所在的机房,可以直接将该即时通讯业务的数据发送给新的主服务器,不需要跨机房发送该即时通讯业务的数据,进而提高了即时通讯业务的吞吐量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种对即时通讯业务进行处理的方法流程图;
图2是本发明实施例二提供的一种对即时通讯业务进行处理的方法流程图;
图3是本发明实施例二提供的一种对即时通讯业务进行处理的系统架构图;
图4是本发明实施例二提供的另一种对即时通讯业务进行处理的方法流程图;
图5是本发明实施例二提供的一种聊天分区界面示意图;
图6是本发明实施例二提供的另一种对即时通讯业务进行处理的系统架构图;
图7是本发明实施例三提供的一种对即时通讯业务进行处理的系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本发明实施例提供了一种对即时通讯业务进行处理的方法,参见图1,该方法包括:
步骤101:选举服务器接收至少两个数据服务器发送的注册请求消息;
步骤102:选举服务器将第一次接收的注册请求信息对应的数据服务器设置为主服务器,将其他的数据服务器设置为从服务器,以通过主服务器接收前端代理设备发送的即时通讯业务的数据并处理该即时通讯业务;
步骤103:选举服务器监听主服务器和从服务器,当监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,将其中一个从服务器设置为新的主服务器,以通过新的主服务器接收前端代理设备发送的即时通讯业务的数据并处理该即时通讯业务。
其中,选举服务器将第一次接收的注册请求消息对应的数据服务器设置为主服务器,将其他的数据服务器设置为从服务器之后,还包括:
选举服务器根据主服务器的网络之间互连的协议IP地址和端口号,从已存储的IP地址、端口号和节点身份标识ID的对应关系中获取主服务器所在的分区服务器集群对应的节点ID;
选举服务器向前端代理设备发送加入消息,该加入消息携带节点ID、主服务器的角色信息、IP地址和端口号、以及从服务器的角色信息、IP地址和端口号;
前端代理设备根据该节点ID,将主服务器的角色信息、IP地址和端口号,以及从服务器的角色信息、IP地址和端口号加入哈希环中对应的节点中。
进一步地,当监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,将其中一个从服务器设置为新的主服务器之后,还包括:
选举服务器向前端代理设备发送更新消息,更新消息中携带节点ID、主服务器的IP地址和端口号,以及新的主服务器的新角色信息、IP地址和端口号;
前端代理设备根据节点ID、主服务器的IP地址和端口号,从哈希环中删除主服务器的角色信息、IP地址和端口号;
前端代理设备根据节点ID、新的主服务器的IP地址和端口号,从该哈希环中获取新的主服务器的角色信息,将获取的角色信息替换为新角色信息。
进一步地,该方法还包括:
第一终端向第一终端接入的第一前端代理设备发送入座请求消息,该入座请求消息携带第一用户的ID和频道的频道ID;
第一前端代理设备根据该频道ID,将该入座请求消息发送给频道对应的分区服务器集群包括的主服务器;
主服务器根据第一用户的ID和频道ID,在频道的聊天分区中为第一用户分配座位;
第一前端代理设备接收第一终端发送的第一用户的ID、频道ID和聊天内容,并根据频道ID将第一用户的ID和聊天内容发送给分区服务器集群包括的聊天服务器;
聊天服务器根据第一用户的ID,将第一用户的ID和聊天内容发送给聊天分区包括的第二用户对应的第二终端,第二用户为聊天分区中除第一用户之外的其他用户。
其中,第一前端代理设备根据频道ID,将该入座请求消息发送给频道对应的分区服务器集群包括的主服务器,包括:
第一前端代理设备对频道ID进行一致性哈希运算,得到频道接入的分区服务器集群对应的节点ID;
第一前端代理设备根据节点ID,从哈希环中获取对应的节点;
第一前端代理设备根据节点中的主服务器的角色信息从节点中获取主服务器的IP地址和端口号;
第一前端代理设备根据主服务器的IP地址和端口号,将该入座请求消息发送给主服务器。
其中,主服务器根据第一用户的ID和频道ID,在频道的聊天分区中为第一用户分配座位,包括:
主服务器根据第一用户的ID,获取第一用户的身份信息;
如果第一用户的身份信息为会员用户,则主服务器根据第一用户的ID和频道ID,在频道的聊天分区包括的特权区域中为第一用户分配座位;
如果第一用户的身份信息为普通用户,则主服务器根据第一用户的ID和频道ID,在聊天分区包括的普通区域中为第一用户分配座位。
优选地,主服务器根据第一用户的ID和频道ID,在频道的聊天分区包括的特权区域中为第一用户分配座位,包括:
主服务器获取频道的聊天分区中的每个分区组包括的特权区域中的用户的第一个数,以及获取每个分区组包括的普通区域中的用户的第二个数;
主服务器将每个分区组对应的第二个数分别除以每个分区组对应的第一个数,得到每个分区组对应的第一数值;
主服务器从聊天分区包括的分区组中,选择最大的第一数值对应的分区组,如果选择的分区组包括的特权区域中存在空闲的座位,则从选择的分区组包括的特权区域中选择一个空闲的座位,并将选择的空闲座位分配给第一用户;
如果选择的分区组包括的特权区域中不存在空闲的座位,则主服务器在该聊天分区中创建一个分区组,并在创建的分区组中创建一个特权区域,并从创建的特权区域中选择一个空闲的座位,并将选择的空闲的座位分配给第一用户。
优选地,主服务器根据第一用户的ID和频道ID,在该聊天分区包括的普通区域中为第一用户分配座位,包括:
主服务器获取频道的聊天分区中的每个分区组包括的用户的个数,选择用户的个数最少的分区组;
在选择的分区组包括的普通区域中,判断是否存在用户数最多且存在空闲座位的普通区域,如果是,则主服务器从用户数最多且存在空闲座位的普通区域中选择一个空闲的座位,并将选择的空闲的座位分配给第一用户;
如果否,则主服务器在选择的分区组中创建一个普通区域,并从创建的普通区域中选择一个空闲的座位,并将选择的空闲的座位分配给第一用户。
其中,聊天服务器根据第一用户的ID,将第一用户的ID和聊天内容发送给聊天分区包括的第二用户对应的第二终端,包括:
聊天服务器根据第一用户的ID,从已存储的用户ID、分区组ID和区域ID的对应关系中获取对应的分区组ID和区域ID;
聊天服务器根据分区组ID和区域ID,从用户ID、分区组ID和区域ID的对应关系中获取第二用户的ID;
聊天服务器根据第二用户的ID,从已存储的用户ID与前端代理设备的标识的对应关系中获取第二用户对应的第二终端接入的第二前端代理设备的标识;
聊天服务器根据第二前端代理设备的标识,将第一用户的ID和聊天内容发送给第二终端。
在本发明实施例中,选举服务器将第一次接收的注册请求消息对应的数据服务器设置为主服务器,将其他的数据服务器设置为从服务器后,当前端代理设备接收到终端发送的即时通讯业务的数据时,将该即时通讯业务的数据发送给主服务器,通过主服务器对该即时通讯业务进行处理。当选举服务器监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,将其中一个从服务器设置为新的主服务器后,当前端代理设备再次接收到终端发送的即时通讯业务的数据时,该选举服务器直接将该即时通讯业务的数据发送给新的主服务器,通过该新的主服务器对该即时通讯业务进行处理。由于前端代理设备、主服务器和从服务器均位于不同的机房中,所以,当主服务器出现故障或者前端代理设备与主服务器之间的网络出现故障时,前端代理设备不需要将即时通讯业务的数据先发送到主服务器所在的机房再发送到新的主服务器所在的机房,可以直接将该即时通讯业务的数据发送给新的主服务器,不需要跨机房发送该即时通讯业务的数据,进而提高了即时通讯业务的吞吐量。
实施例二
本发明实施例提供了一种对即时通讯业务进行处理的方法,参见图2,该方法包括:
步骤201:选举服务器接收至少两个数据服务器发送的注册请求消息;
其中,当数据服务器启动后,数据服务器会向选举服务器发送注册请求消息,该注册请求消息中携带该数据服务器的IP(Internet Protocol,网络之间互连的协议)地址和端口号。
如图3所示的系统架构图中,该系统中包括终端、前端代理设备、选举服务器、主服务器和从服务器,主服务器和从服务器位于同一个分区服务器集群中。该系统中的从服务器还可以继续扩展,执行该即时通讯业务中的其他操作。
步骤202:选举服务器将第一次接收的注册请求信息对应的数据服务器设置为主服务器,将其他的数据服务器设置为从服务器;
其中,选举服务器接收数据服务器发送的注册请求消息时会记录接收该注册请求消息的接收时间,根据接收的至少两个数据服务器的注册请求消息的接收时间,将接收时间最早的一个数据服务器设置为主服务器,将其他的数据服务器设置为从服务器。
进一步地,当选举服务器设置主服务器和从服务器之后,选举服务器向该主服务器发送第一回复消息,该第一回复消息携带主服务器的角色信息、从服务器的角色信息、从服务器的IP地址和端口号;并向从服务器发送第二回复消息,该第二回复消息携带从服务器的角色信息、主服务器的角色信息、主服务器的IP地址和端口号。
其中,角色信息用于指示数据服务器是主服务器还是从服务器。
其中,选举服务器设置主服务器和从服务器之后,该主服务器和从服务器便构成了一个分区服务器集群,并通知该分区服务器集群中的每个服务器自身所在的分区服务器集群中包括的每个服务器的角色信息、IP地址和端口号。
其中,上述步骤中至少两个数据服务器启动的时间可能不同,所以选举服务器可以在接收到第一个数据服务器发送的注册请求消息之后,将第一个数据服务器设置为分区服务器集群的主服务器,将后续接收的数据服务器设置为该分区服务器集群的从服务器。当然,选举服务器也可以接收到第一个数据服务器发送的注册请求消息之后不执行设置主服务器的步骤,可以在接收到第二个数据服务器发送的注册请求消息之后,将第一个数据服务器设置为主服务器,将第二个数据服务器设置为从服务器,将第二个数据服务器之后接收的注册请求消息的数据服务器也设置为从服务器。
其中,从服务器可以为聊天服务器。
步骤203:选举服务器根据主服务器的IP地址和端口号,从已存储的IP地址、端口号和节点ID(identity,身份标识)的对应关系中获取主服务器所在的分区服务器集群对应的节点ID;
其中,一个分区服务器集群对应一个节点,所以选择服务器可以根据该分区服务器集群包括的主服务器的IP地址和端口号,从已存储的IP地址、端口号和节点ID的对应关系中获取主服务器所在的分区服务器集群对应的节点ID,还可以根据该分区服务器集群包括的从服务器的IP地址和端口号,从已存储的IP地址、端口号和节点ID的对应关系中获取主服务器所在的分区服务器集群对应的节点ID。
其中,主服务器的IP地址和端口号是主服务器发送给选举服务器的注册请求消息中携带的IP地址和端口号,从服务器的IP地址和端口号是从服务器发送给选举服务器的注册请求消息中携带的IP地址和端口号,且IP地址、端口号和节点ID的对应关系中的节点ID是选举服务器事先为每个数据服务器配置的节点ID。
步骤204:选举服务器向前端代理设备发送加入消息,该加入消息携带该节点ID、主服务器的角色信息、IP地址和端口号、以及从服务器的角色信息、IP地址和端口号;
其中,每个用户对应的终端都会接入一个前端代理设备,通过该前端代理设备将信息发送给频道对应的分区服务器集群,所以选举服务器会将该分区服务器集群包括的主服务器的角色信息、IP地址和端口号、以及从服务器的角色信息、IP地址和端口号发送给前端代理设备。
步骤205:前端代理设备根据节点ID,将主服务器的角色信息、IP地址和端口号,以及从服务器的角色信息、IP地址和端口号加入哈希环中对应的节点中,以通过主服务器接收前端代理设备发送的即时通讯业务的数据并处理该即时通讯业务;
其中,在前端代理设备中存储哈希环,该哈希环中包括多个分区服务器集群对应的节点,且每个节点均存在自身对应的节点ID。
需要补充说明的是,为了便于对该哈希环包括的节点中的信息进行维护,可以在该哈希环包括的节点中设置角色信息、IP地址和端口号的对应关系,当前端代理设备接收到选举服务器发送的主服务器的角色信息、IP地址和端口号,以及从服务器的角色信息、IP地址和端口号时,该前端代理设备将主服务器的角色信息、IP地址和端口号存储在角色信息、IP地址和端口号的对应关系中,以及将从服务器的角色信息、IP地址和端口号存储在角色信息、IP地址和端口号的对应关系中。
进一步地,前端代理设备根据节点ID,将主服务器角色信息、IP地址和端口号,以及从服务器的角色信息、IP地址和端口号加入哈希环中对应的节点之后,当前端代理设备接收到接入的终端发送的即时通讯业务的数据时,该前端代理设备可以将该即时通讯业务的数据发送给该主服务器,通过该主服务器对该即时通讯业务进行处理。并且当主服务器中存储对该即时通讯业务进行处理的结果时,该主服务器根据自身所在的分区服务器集群包括的从服务器的IP地址和端口号,将该处理结果发送给该分区服务器集群包括的从服务器,使该分区服务器集群中的从服务器和主服务器中存储的数据相同。
步骤206:选举服务器监听主服务器和从服务器,当监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,将其中一个从服务器设置为新的主服务器;
具体地,选举服务器监听主服务器和从服务器,当选举服务器监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,如果该分区服务器集群包括多个从服务器,则该选举服务器立即从该多个从服务器随机选择一个从服务器,将选择的从服务器设置为新的主服务器;如果该分区服务器集群包括一个从服务器,则该选举服务器立即将该从服务器设置为新的主服务器。
步骤207:选举服务器向前端代理设备发送更新消息,该更新消息中携带节点ID、出现故障的主服务器的IP地址和端口号,以及新的主服务器的新角色信息、IP地址和端口号;
步骤208:前端代理设备根据节点ID、主服务器的IP地址和端口号,从哈希环中删除主服务器的角色信息、IP地址和端口号;
具体地,前端代理设备根据节点ID,从哈希环中查找对应的节点,并根据主服务器的IP地址和端口号,从查找的节点中删除主服务器的角色信息、IP地址和端口号。
步骤209:前端代理设备根据节点ID、新的主服务器的IP地址和端口号,从哈希环中获取新的主服务器的角色信息,将获取的角色信息替换为接收的新角色信息,以通过新的主服务器接收前端代理设备发送的即时通讯业务的数据并处理该即时通讯业务。
具体地,前端代理设备根据节点ID,从哈希环中查找对应的节点,根据新的主服务器的IP地址和端口号,从查找的节点中获取新的主服务器的角色信息,将获取的角色信息替换为接收的新的角色信息。当前端代理设备接收到接入的终端发送的即时通讯业务的数据时,该前端代理设备可以将该即时通讯业务的数据发送给该新的主服务器,通过该新的主服务器对该即时通讯业务进行处理。
进一步地,当除上述至少两个数据服务器之外的其他数据服务器启动时,该新启动的数据服务器向选举服务器发送注册请求消息,该注册请求信息携带该新启动的数据服务器的IP地址和端口号;选举服务器接收该注册请求信息,从分区服务器集群中检测没有从服务器的分区服务器集群,如果检测到,则将该新启动的数据服务器设置为检测到的分区服务器集群的从服务器;选举服务器向检测到的分区服务器集群包括的主服务器发送第三回复消息,该第三回复消息携带该新启动的数据服务器的角色信息、IP地址和端口号;以及向该新启动的数据服务器发送第四回复消息,该第四回复消息携带该新启动的数据服务器的角色信息、检测到的分区服务器集群包括的主服务器的角色信息、IP地址和端口号。
其中,如果选举服务器没有检测到不存在从服务器的分区服务器集群,则选举服务器从每个分区服务器集群中获取与该新启动的数据服务器的IP地址位于同一个IP段的分区服务器集群,将该新启动的数据服务器设置为获取的分区服务器集群的从服务器。
其中,在本发明实施例中,选举服务器监听主服务器和从服务器,当监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,该选举服务器立即将其中一个从服务器设置为新的主服务器,通过该新的主服务器接收前端代理设备发送的即时通讯业务的数据并对该即时通讯业务进行处理,进而避免当主服务器出现故障时从服务器不能升级为主服务器,以及避免了主服务器出现故障时,终端无法向该分区服务器集群包括的从服务器中写入该即时通讯业务的数据,进而无法对该即时通讯业务进行处理。由于前端代理设备、主服务器和从服务器均位于不同的机房中,所以,当主服务器出现故障或者前端代理设备与主服务器之间的网络出现故障时,前端代理设备不需要将即时通讯业务的数据先发送到主服务器所在的机房再发送到新的主服务器所在的机房,可以直接将该即时通讯业务的数据发送给新的主服务器,不需要跨机房,进而提高了即时通讯业务的吞吐量。
其中,通过上述201-209的步骤对该分区服务器集群进行设置及维护后,可以根据如下的步骤通过上述的主服务器对即时通讯业务进行处理,参见图4,具体对即时通讯业务进行处理的方法包括:
步骤301:第一终端向第一终端接入的第一前端代理设备发送入座请求消息,该入座请求消息携带第一用户的ID和频道的频道ID;
其中,第一终端向第一前端代理设备发送入座请求消息之前,第一终端需要进入该频道。
第一终端进入该频道的步骤具体可以为:第一终端向会话服务器发送进入请求消息,该进入请求消息携带第一用户的ID和该频道的频道ID;会话服务器接收该进入请求消息,根据该频道ID,将该用户的ID存储在该频道对应的用户列表中,以及根据该频道ID,从已存储的频道ID与应用标识的对应关系中获取对应的应用标识,并将该频道对应的用户列表中的用户标识和该频道包括的应用标识发送给前端代理设备,使前端代理设备将该频道对应的用户列表中的用户标识和该频道包括的应用标识转发给第一终端。
第一终端接收该频道对应的用户列表中的用户标识和该频道包括的应用标识,加载该用户列表和该应用标识对应的应用,以进入该频道。
步骤302:第一前端代理设备根据该频道ID,将入座请求消息发送给该频道对应的分区服务器集群包括的主服务器;
具体地,第一前端代理设备对该频道ID进行一致性哈希运算,得到该频道接入的分区服务器集群对应的节点ID;第一前端代理设备根据节点ID,从哈希环中获取对应的节点;第一前端代理设备根据获取的节点中的主服务器的角色信息从该节点中获取主服务器的IP地址和端口号;第一前端代理设备根据主服务器的IP地址和端口号,将该入座请求消息发送给主服务器。
其中,第一前端代理设备可以根据获取的节点中的主服务器的角色信息,从该节点的角色信息、IP地址和端口号的对应关系中获取该主服务器的IP地址和端口号。
步骤303:主服务器根据第一用户的ID,获取第一用户的身份信息;
具体地,主服务器从已存储的会员列表中查找第一用户的ID,如果查找到,则确定第一用户的身份信息为会员用户,如果没有查找到,则确定第一用户的身份信息为普通用户。
步骤304:如果第一用户的身份信息为会员用户,则主服务器根据第一用户的ID和该频道ID,在该频道的聊天分区包括的特权区域中为第一用户分配座位;
具体地,本步骤可以通过如下(1)-(5)的步骤来实现,包括:
(1)、主服务器获取该频道的聊天分区中的每个分区组包括的特权区域中的用户的第一个数,以及获取每个分区组包括的普通区域中的用户的第二个数;
其中,频道的聊天分区中包括多个分区组,且每个分区组包括一个特权区域和多个普通区域,特权区域中包括多个座位,以及每个普通区域中包括多个座位。
可选地,分区组中也可以包括多个特权区域,且特权区域的个数小于普通区域的个数。
(2)、主服务器将每个分区组对应的第二个数分别除以每个分区组对应的第一个数,得到每个分区组对应的第一数值;
(3)、主服务器从该聊天分区包括的分区组中,选择最大的第一数值对应的分区组;
具体地,主服务器将该聊天分区包括的每个分区组对应的第一数值进行比较,从每个分区组对应的第一数值中选择一个最大的第一数值,并选择最大的第一数值对应的分区组。
(4)、如果选择的分区组包括的特权区域中存在空闲的座位,则主服务器从选择的分区组包括的特权区域中选择一个空闲的座位,并将选择的空闲座位分配给第一用户;
具体地,主服务器判断选择的分区组包括的特权区域中是否存在空闲的座位,如果选择的分区组包括的特权区域中存在空闲的座位,则主服务器从选择的分区组包括的特权区域中随机选择一个空闲的座位,并将选择的空闲座位分配给第一用户。
(5)、如果选择的分区组包括的特权区域中不存在空闲的座位,则主服务器在该聊天分区中创建一个分区组,并在创建的分区组中创建一个特权区域,并从创建的特权区域中选择一个空闲的座位,并将选择的空闲的座位分配给第一用户。
进一步地,主服务器还可以在创建的分区组中创建多个普通区域。
进一步地,主服务器将选择的空闲座位分配给第一用户之后,主服务器根据第一用户的ID,获取第一用户的用户头像,并将第一用户的用户头像绑定在为第一用户分配的座位上。
进一步地,如果第一用户没有设置自己的头像,则主服务器可以获取默认的用户头像,将默认的用户头像作为第一用户的用户头像,并绑定在为第一用户分配的座位上。
其中,该频道的聊天分区中不仅包括第一用户的用户头像,还包括其他用户的用户头像,当主服务器将第一用户的用户头像绑定在为第一用户分配的座位上之后,主服务器将该频道的聊天分区发送给第一前端代理设备,使第一前端代理设备将该聊天分区发送给第一终端。并且主服务器还根据第一用户的ID,获取第一用户所在聊天分区的其他用户的ID,将第一用户的ID和第一用户的用户头像发送给其他用户对应的终端,使其他用户对应的终端在第一用户所在的座位上显示第一用户的用户头像。
由于频道的聊天分区包括多个分区组,而每个用户对应的终端上只显示该用户所在分区组中的用户头像,其他分区组中的用户头像不显示在该终端的屏幕上,当用户查看其他分区组中的用户时,该用户可以向终端发送切换指令,使终端将屏幕上显示的分区组的用户头像进行切换。
其中,该频道中还包括直播视频屏幕或者表演屏幕,以及聊天内容显示区域,用户可以在直播视频屏幕上观看正在直播的视频,还可以与该聊天分区中的其他用户聊天,并将聊天内容显示在聊天内容显示区域中。
其中,位于不同区域的用户,可能其对应的终端上显示的聊天内容显示区域中显示的聊天内容不同。
例如,第一终端接收第一前端代理设备发送的聊天分区后,第一终端可以显示如图5所示的聊天分区界面,该聊天分区界面中包括表演屏幕、特权区域、普通区域、用户的头像和聊天内容显示区域。
步骤305:如果第一用户的身份信息为普通用户,则主服务器根据第一用户的ID和该频道ID,在该频道的聊天分区包括的普通区域中为第一用户分配座位;
具体地,本步骤可以通过如下(a)-(c)的步骤来实现,包括:
(a)、主服务器获取该频道的聊天分区中的每个分区组包括的用户的个数,选择用户的个数最少的分区组;
具体地,主服务器获取该频道的聊天分区中的每个分区组包括的用户的个数,将每个分区组包括的用户的个数进行比较,选择用户的个数最少的分区组。
(b)、在选择的分区组包括的普通区域中,判断是否存在用户数最多且存在空闲座位的普通区域,如果是,则从用户数最多且存在空闲座位的普通区域中选择一个空闲的座位,并将选择的空闲的座位分配给第一用户;
具体地,在选择的分区组包括的普通区域中,统计每个普通区域中的用户的个数,将统计的个数进行比较,选择用户的个数最大的普通区域,判断选择的普通区域中是否存在空闲的座位,如果存在,则从选择的普通区域中随机选择一个空闲的座位,将选择的空闲的座位分配给第一用户。
(c)、如果否,则在选择的分区组中创建一个普通区域,并从创建的普通区域中选择一个空闲的座位,并将选择的空闲的座位分配给第一用户。
进一步地,主服务器还可以在创建的分区组中创建特权区域。
步骤306:第一前端代理设备接收第一终端发送的第一用户的ID、频道ID和聊天内容,并根据该频道ID将第一用户的ID和聊天内容发送给该分区服务器集群包括的聊天服务器;
具体地,第一前端代理设备接收第一终端发送的第一用户的ID、频道ID和聊天内容,对该频道ID进行一致性哈希运算,得到该频道接入的分区服务器集群对应的节点ID。第一前端代理设备根据该节点ID,从哈希环中获取对应的节点,从该节点中获取聊天服务器的IP地址和端口号;根据聊天服务器的IP地址和端口号,将第一用户的ID和聊天内容发送给该分区服务器集群包括的聊天服务器。
其中,当第一用户与与该聊天分区中的其他用户聊天时,第一终端向第一前端代理设备发送第一用户的ID、频道ID和聊天内容。
如图6所示的系统架构图中,该系统包括第一终端、第一前端代理设备、选举服务器和分区服务器集群,该分区服务器集群不仅包括主服务器、从服务器,还包括聊天服务器,当第一用户发送聊天内容时,第一用户对应的第一终端向第一终端接入的第一前端代理设备发送聊天内容,使第一前端代理设备将该聊天内容发送给该聊天服务器。
步骤307:聊天服务器根据第一用户的ID,将第一用户的ID和聊天内容发送给该聊天分区包括的第二用户对应的第二终端,第二用户为该聊天分区中除第一用户之外的其他用户。
具体地,本步骤可以通过如下(1)-(4)的步骤来实现,包括:
(1)、聊天服务器根据第一用户的ID,从已存储的用户ID、分区组ID和区域ID的对应关系中获取对应的分区组ID和区域ID;
(2)、聊天服务器根据该分区组ID和区域ID,从用户ID、分区组ID和区域ID的对应关系中获取第二用户的ID;
具体地,聊天服务器根据该分区组ID和区域ID,从用户ID、分区组ID和区域ID的对应关系中获取对应的用户ID,从获取的用户ID中删除第一用户的ID,得到第二用户的ID。
其中,第二用户为与第一用户位于同一个区域中的其他用户,将第一用户的聊天内容发送给该第二用户,如此,同一个区域中的用户只能看到自己所在区域中的用户的聊天内容,避免了当该频道的聊天分区中的用户较多时,该聊天分区中的所有用户均能看到每个用户的聊天内容时出现聊天内容杂乱的现象。
(3)、聊天服务器根据第二用户的ID,从已存储的用户ID与前端代理设备的标识的对应关系中获取第二用户对应的第二终端接入的第二前端代理设备的标识;
(4)、聊天服务器根据第二前端代理设备的标识,将第一用户的ID和聊天内容发送给第二终端。
其中,聊天服务器中存储的数据与该分区服务器集群包括的主服务器中存储的数据相同,所以通过聊天服务器将第一用户的ID和聊天内容发送给第二用户对应的第二终端,保证了聊天内容能准确地发送到对应的第二终端中。
进一步地,还可以将第一用户的聊天内容发送给该聊天分区内所有的用户,但是一般用户对应的终端上只显示在用户所在区域中的用户的聊天内容,当用户想要查看该聊天分区内所有用户的聊天内容时,该用户可以向终端发送切换指令,该终端根据该切换指令向用户显示该聊天分区内所有用户的聊天内容。
在本发明实施例中,选举服务器监听主服务器和从服务器,当监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,该选举服务器立即将其中一个从服务器设置为新的主服务器,通过该新的主服务器接收前端代理设备发送的即时通讯业务的数据并对该即时通讯业务进行处理,进而避免当主服务器出现故障时从服务器不能升级为主服务器,以及避免了主服务器出现故障时,终端无法向该分区服务器集群包括的从服务器中写入该即时通讯业务的数据,进而无法对该即时通讯业务进行处理。由于前端代理设备、主服务器和从服务器均位于不同的机房中,所以,当主服务器出现故障或者前端代理设备与主服务器之间的网络出现故障时,前端代理设备不需要将即时通讯业务的数据先发送到主服务器所在的机房再发送到新的主服务器所在的机房,可以直接将该即时通讯业务的数据发送给新的主服务器,不需要跨机房,进而提高了即时通讯业务的吞吐量。频道的聊天分区中设置多个分区组,并在每个分区组中设置特权区域和普通区域,使更多的用户可以进入该频道,并且当第一用户与其他用户进行聊天时,聊天服务器根据第一用户的ID,从已存储的用户ID、分区组ID和区域ID的对应关系中获取到与第一用户在同一个区域中的第二用户,避免了该频道的聊天分区中的用户较多时,将聊天内容发送给所有的用户时出现聊天内容杂乱的现象。
实施例三
参见图7,本发明实施例提供了一种对即时通讯业务进行处理的系统,该系统包括:选举服务器401和至少两个数据服务器402;
选举服务器401,用于接收至少两个数据服务器发送的注册请求消息;
选举服务器401,用于将第一次接收的注册请求信息对应的数据服务器设置为主服务器,将其他的数据服务器设置为从服务器,以通过主服务器接收前端代理设备发送的即时通讯业务的数据并处理该即时通讯业务;
选举服务器401,用于监听主服务器和从服务器,当监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,将其中一个从服务器设置为新的主服务器,以通过新的主服务器接收前端代理设备发送的即时通讯业务的数据并处理该即时通讯业务。
进一步地,该系统还包括:
选举服务器401,用于根据主服务器的网络之间互连的协议IP地址和端口号,从已存储的IP地址、端口号和节点身份标识ID的对应关系中获取主服务器所在的分区服务器集群对应的节点ID;
选举服务器401,用于向前端代理设备发送加入消息,该加入消息携带节点ID、主服务器的角色信息、IP地址和端口号、以及从服务器的角色信息、IP地址和端口号;
前端代理设备,用于根据节点ID,将主服务器的角色信息、IP地址和端口号,以及从服务器的角色信息、IP地址和端口号加入哈希环中对应的节点中。
进一步地,该系统还包括:
选举服务器401,用于向前端代理设备发送更新消息,更新消息中携带节点ID、主服务器的IP地址和端口号,以及新的主服务器的新角色信息、IP地址和端口号;
前端代理设备,用于根据节点ID、主服务器的IP地址和端口号,从哈希环中删除主服务器的角色信息、IP地址和端口号;
前端代理设备,用于根据节点ID、新的主服务器的IP地址和端口号,从哈希环中获取新的主服务器的角色信息,将获取的角色信息替换为新角色信息。
进一步地,该系统还包括:
第一终端,用于向第一终端接入的第一前端代理设备发送入座请求消息,该入座请求消息携带第一用户的ID和频道的频道ID;
第一前端代理设备,用于根据频道ID,将入座请求消息发送给频道对应的分区服务器集群包括的主服务器;
主服务器,用于根据第一用户的ID和频道ID,在频道的聊天分区中为第一用户分配座位;
第一前端代理设备,用于接收第一终端发送的第一用户的ID、频道ID和聊天内容,并根据频道ID将第一用户的ID和聊天内容发送给分区服务器集群包括的聊天服务器;
聊天服务器,用于根据第一用户的ID,将第一用户的ID和聊天内容发送给聊天分区包括的第二用户对应的第二终端,第二用户为聊天分区中除第一用户之外的其他用户。
其中,第一前端代理设备,用于对频道ID进行一致性哈希运算,得到频道接入的分区服务器集群对应的节点ID;
第一前端代理设备,用于根据节点ID,从哈希环中获取对应的节点;
第一前端代理设备,用于根据节点中的主服务器的角色信息从节点中获取主服务器的IP地址和端口号;
第一前端代理设备,用于根据主服务器的IP地址和端口号,将入座请求消息发送给主服务器。
其中,主服务器,用于根据第一用户的ID,获取第一用户的身份信息;
主服务器,用于如果第一用户的身份信息为会员用户,则根据第一用户的ID和频道ID,在频道的聊天分区包括的特权区域中为第一用户分配座位;
主服务器,用于如果第一用户的身份信息为普通用户,则根据第一用户的ID和频道ID,在聊天分区包括的普通区域中为第一用户分配座位。
其中,主服务器,用于获取频道的聊天分区中的每个分区组包括的特权区域中的用户的第一个数,以及获取每个分区组包括的普通区域中的用户的第二个数;
主服务器,用于将每个分区组对应的第二个数分别除以每个分区组对应的第一个数,得到每个分区组对应的第一数值;
主服务器,用于从聊天分区包括的分区组中,选择最大的第一数值对应的分区组,如果选择的分区组包括的特权区域中存在空闲的座位,则从选择的分区组包括的特权区域中选择一个空闲的座位,并将选择的空闲座位分配给第一用户;
主服务器,用于如果选择的分区组包括的特权区域中不存在空闲的座位,则在聊天分区中创建一个分区组,并在创建的分区组中创建一个特权区域,并从创建的特权区域中选择一个空闲的座位,并将选择的空闲的座位分配给第一用户。
其中,主服务器,用于获取频道的聊天分区中的每个分区组包括的用户的个数,选择用户的个数最少的分区组;
主服务器,用于在选择的分区组包括的普通区域中,判断是否存在用户数最多且存在空闲座位的普通区域,如果是,则从用户数最多且存在空闲座位的普通区域中选择一个空闲的座位,并将选择的空闲的座位分配给第一用户;
主服务器,用于如果否,则在选择的分区组中创建一个普通区域,并从创建的普通区域中选择一个空闲的座位,并将选择的空闲的座位分配给第一用户。
其中,聊天服务器,用于根据第一用户的ID,从已存储的用户ID、分区组ID和区域ID的对应关系中获取对应的分区组ID和区域ID;
聊天服务器,用于根据分区组ID和区域ID,从用户ID、分区组ID和区域ID的对应关系中获取第二用户的ID;
聊天服务器,用于根据第二用户的ID,从已存储的用户ID与前端代理设备的标识的对应关系中获取第二用户对应的第二终端接入的第二前端代理设备的标识;
聊天服务器,用于根据第二前端代理设备的标识,将第一用户的ID和聊天内容发送给第二终端。
在本发明实施例中,选举服务器将第一次接收的注册请求消息对应的数据服务器设置为主服务器,将其他的数据服务器设置为从服务器后,当前端代理设备接收到终端发送的即时通讯业务的数据时,将该即时通讯业务的数据发送给主服务器,通过主服务器对该即时通讯业务进行处理。当选举服务器监听到主服务器出现故障或者当主服务器与前端代理设备之间的网络出现故障时,将其中一个从服务器设置为新的主服务器后,当前端代理设备再次接收到终端发送的即时通讯业务的数据时,该选举服务器直接将该即时通讯业务的数据发送给新的主服务器,通过该新的主服务器对该即时通讯业务进行处理。由于前端代理设备、主服务器和从服务器均位于不同的机房中,所以,当主服务器出现故障或者前端代理设备与主服务器之间的网络出现故障时,前端代理设备不需要将即时通讯业务的数据先发送到主服务器所在的机房再发送到新的主服务器所在的机房,可以直接将该即时通讯业务的数据发送给新的主服务器,不需要跨机房发送该即时通讯业务的数据,进而提高了即时通讯业务的吞吐量。
需要说明的是:上述实施例提供的对即时通讯业务进行处理的系统在对即时通讯业务进行处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的对即时通讯业务进行处理的系统与对即时通讯业务进行处理的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种对即时通讯业务进行处理的方法,其特征在于,用于对即时通讯业务进行处理的系统中,所述系统包括前端代理设备、选举服务器和至少一个分区服务器集群,所述方法包括:
所述选举服务器接收任一所述分区服务器集群中的至少两个数据服务器发送的注册请求消息;
所述选举服务器将第一次接收的注册请求信息对应的数据服务器设置为所述分区服务器集群中的主服务器,将第一次之后接收的注册请求信息对应的数据服务器设置为所述分区服务器集群中的从服务器,所述选举服务器根据所述主服务器的网络之间互连的协议IP地址和端口号,从已存储的IP地址、端口号和节点身份标识ID的对应关系中获取所述主服务器所在的分区服务器集群对应的节点ID,所述选举服务器向所述前端代理设备发送加入消息,所述加入消息携带所述节点ID、所述主服务器的角色信息、IP地址和端口号、以及所述从服务器的角色信息、IP地址和端口号,所述前端代理设备根据所述节点ID,将所述主服务器的角色信息、IP地址和端口号,以及所述从服务器的角色信息、IP地址和端口号加入哈希环中对应的节点中,以通过所述主服务器接收所述前端代理设备发送的即时通讯业务的数据并处理所述即时通讯业务;
所述选举服务器监听所述主服务器和所述从服务器,当监听到所述主服务器出现故障或者当所述主服务器与所述前端代理设备之间的网络出现故障时,将所述分区服务器集群中的一个从服务器设置为新的主服务器,所述选举服务器向所述前端代理设备发送更新消息,所述更新消息中携带所述节点ID、所述主服务器的IP地址和端口号,以及所述新的主服务器的新角色信息、IP地址和端口号,所述前端代理设备根据所述节点ID、所述主服务器的IP地址和端口号,从所述哈希环中删除所述主服务器的角色信息、IP地址和端口号,所述前端代理设备根据所述节点ID、所述新的主服务器的IP地址和端口号,从所述哈希环中获取所述新的主服务器的角色信息,将所述获取的角色信息替换为所述新角色信息,以通过所述新的主服务器接收所述前端代理设备发送的即时通讯业务的数据并处理所述即时通讯业务。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
第一终端向所述第一终端接入的第一前端代理设备发送入座请求消息,所述入座请求消息携带第一用户的ID和频道的频道ID;
所述第一前端代理设备根据所述频道ID,将所述入座请求消息发送给所述频道对应的分区服务器集群包括的主服务器;
所述主服务器根据所述第一用户的ID和所述频道ID,在所述频道的聊天分区中为所述第一用户分配座位;
所述第一前端代理设备接收所述第一终端发送的所述第一用户的ID、所述频道ID和聊天内容,并根据所述频道ID将所述第一用户的ID和所述聊天内容发送给所述分区服务器集群包括的聊天服务器;
所述聊天服务器根据所述第一用户的ID,将所述第一用户的ID和所述聊天内容发送给所述聊天分区包括的第二用户对应的第二终端,所述第二用户为所述聊天分区中除所述第一用户之外的其他用户。
3.如权利要求2所述的方法,其特征在于,所述第一前端代理设备根据所述频道ID,将所述入座请求消息发送给所述频道对应的分区服务器集群包括的主服务器,包括:
所述第一前端代理设备对所述频道ID进行一致性哈希运算,得到所述频道接入的分区服务器集群对应的节点ID;
所述第一前端代理设备根据所述节点ID,从哈希环中获取对应的节点;
所述第一前端代理设备根据所述节点中的主服务器的角色信息从所述节点中获取所述主服务器的IP地址和端口号;
所述第一前端代理设备根据所述主服务器的IP地址和端口号,将所述入座请求消息发送给所述主服务器。
4.如权利要求2所述的方法,其特征在于,所述主服务器根据所述第一用户的ID和所述频道ID,在所述频道的聊天分区中为所述第一用户分配座位,包括:
所述主服务器根据所述第一用户的ID,获取所述第一用户的身份信息;
如果所述第一用户的身份信息为会员用户,则所述主服务器根据所述第一用户的ID和所述频道ID,在所述频道的聊天分区包括的特权区域中为所述第一用户分配座位;
如果所述第一用户的身份信息为普通用户,则所述主服务器根据所述第一用户的ID和所述频道ID,在所述聊天分区包括的普通区域中为所述第一用户分配座位。
5.如权利要求4所述的方法,其特征在于,所述主服务器根据所述第一用户的ID和所述频道ID,在所述频道的聊天分区包括的特权区域中为所述第一用户分配座位,包括:
所述主服务器获取所述频道的聊天分区中的每个分区组包括的特权区域中的用户的第一个数,以及获取所述每个分区组包括的普通区域中的用户的第二个数;
所述主服务器将所述每个分区组对应的所述第二个数分别除以所述每个分区组对应的第一个数,得到所述每个分区组对应的第一数值;
所述主服务器从所述聊天分区包括的分区组中,选择最大的第一数值对应的分区组,如果选择的分区组包括的特权区域中存在空闲的座位,则从选择的分区组包括的特权区域中选择一个空闲的座位,并将选择的空闲座位分配给所述第一用户;
如果选择的分区组包括的特权区域中不存在空闲的座位,则所述主服务器在所述聊天分区中创建一个分区组,并在创建的分区组中创建一个特权区域,并从创建的特权区域中选择一个空闲的座位,并将选择的空闲的座位分配给所述第一用户。
6.如权利要求4所述的方法,其特征在于,所述主服务器根据所述第一用户的ID和所述频道ID,在所述聊天分区包括的普通区域中为所述第一用户分配座位,包括:
所述主服务器获取所述频道的聊天分区中的每个分区组包括的用户的个数,选择用户的个数最少的分区组;
在选择的分区组包括的普通区域中,判断是否存在用户数最多且存在空闲座位的普通区域,如果是,则所述主服务器从所述用户数最多且存在空闲座位的普通区域中选择一个空闲的座位,并将选择的空闲的座位分配给所述第一用户;
如果否,则所述主服务器在所述选择的分区组中创建一个普通区域,并从创建的普通区域中选择一个空闲的座位,并将选择的空闲的座位分配给所述第一用户。
7.如权利要求2所述的方法,其特征在于,所述聊天服务器根据所述第一用户的ID,将所述第一用户的ID和所述聊天内容发送给所述聊天分区包括的第二用户对应的第二终端,包括:
所述聊天服务器根据所述第一用户的ID,从已存储的用户ID、分区组ID和区域ID的对应关系中获取对应的分区组ID和区域ID;
所述聊天服务器根据所述分区组ID和所述区域ID,从所述用户ID、分区组ID和区域ID的对应关系中获取第二用户的ID;
所述聊天服务器根据所述第二用户的ID,从已存储的用户ID与前端代理设备的标识的对应关系中获取所述第二用户对应的第二终端接入的第二前端代理设备的标识;
所述聊天服务器根据所述第二前端代理设备的标识,将所述第一用户的ID和所述聊天内容发送给所述第二终端。
8.一种对即时通讯业务进行处理的系统,其特征在于,所述系统包括:前端代理设备、选举服务器和至少一个分区服务器集群,每个所述分区服务器集群包括至少两个数据服务器;
所述选举服务器,用于接收任一所述分区服务器集群中的至少两个数据服务器发送的注册请求消息;
所述选举服务器,用于将第一次接收的注册请求信息对应的数据服务器设置为所述分区服务器集群中的主服务器,将第一次之后接收的注册请求信息对应的数据服务器设置为所述分区服务器集群中的从服务器,根据所述主服务器的网络之间互连的协议IP地址和端口号,从已存储的IP地址、端口号和节点身份标识ID的对应关系中获取所述主服务器所在的分区服务器集群对应的节点ID,向所述前端代理设备发送加入消息,所述加入消息携带所述节点ID、所述主服务器的角色信息、IP地址和端口号、以及所述从服务器的角色信息、IP地址和端口号,所述前端代理设备用于根据所述节点ID,将所述主服务器的角色信息、IP地址和端口号,以及所述从服务器的角色信息、IP地址和端口号加入哈希环中对应的节点中,以通过所述主服务器接收所述前端代理设备发送的即时通讯业务的数据并处理所述即时通讯业务;
所述选举服务器,还用于监听所述主服务器和所述从服务器,当监听到所述主服务器出现故障或者当所述主服务器与所述前端代理设备之间的网络出现故障时,将所述分区服务器集群中的一个从服务器设置为新的主服务器,向所述前端代理设备发送更新消息,所述更新消息中携带所述节点ID、所述主服务器的IP地址和端口号,以及所述新的主服务器的新角色信息、IP地址和端口号,所述前端代理设备还用于根据所述节点ID、所述主服务器的IP地址和端口号,从所述哈希环中删除所述主服务器的角色信息、IP地址和端口号,根据所述节点ID、所述新的主服务器的IP地址和端口号,从所述哈希环中获取所述新的主服务器的角色信息,将所述获取的角色信息替换为所述新角色信息,以通过所述新的主服务器接收所述前端代理设备发送的即时通讯业务的数据并处理所述即时通讯业务。
9.如权利要求8所述的系统,其特征在于,所述系统还包括:
第一终端,用于向所述第一终端接入的第一前端代理设备发送入座请求消息,所述入座请求消息携带第一用户的ID和频道的频道ID;
所述第一前端代理设备,用于根据所述频道ID,将所述入座请求消息发送给所述频道对应的分区服务器集群包括的主服务器;
所述主服务器,用于根据所述第一用户的ID和所述频道ID,在所述频道的聊天分区中为所述第一用户分配座位;
所述第一前端代理设备,用于接收所述第一终端发送的所述第一用户的ID、所述频道ID和聊天内容,并根据所述频道ID将所述第一用户的ID和所述聊天内容发送给所述分区服务器集群包括的聊天服务器;
所述聊天服务器,用于根据所述第一用户的ID,将所述第一用户的ID和所述聊天内容发送给所述聊天分区包括的第二用户对应的第二终端,所述第二用户为所述聊天分区中除所述第一用户之外的其他用户。
10.如权利要求9所述的系统,其特征在于,
所述第一前端代理设备,用于对所述频道ID进行一致性哈希运算,得到所述频道接入的分区服务器集群对应的节点ID;
所述第一前端代理设备,用于根据所述节点ID,从哈希环中获取对应的节点;
所述第一前端代理设备,用于根据所述节点中的主服务器的角色信息从所述节点中获取所述主服务器的IP地址和端口号;
所述第一前端代理设备,用于根据所述主服务器的IP地址和端口号,将所述入座请求消息发送给所述主服务器。
11.如权利要求9所述的系统,其特征在于,
所述主服务器,用于根据所述第一用户的ID,获取所述第一用户的身份信息;
所述主服务器,用于如果所述第一用户的身份信息为会员用户,则根据所述第一用户的ID和所述频道ID,在所述频道的聊天分区包括的特权区域中为所述第一用户分配座位;
所述主服务器,用于如果所述第一用户的身份信息为普通用户,则根据所述第一用户的ID和所述频道ID,在所述聊天分区包括的普通区域中为所述第一用户分配座位。
12.如权利要求11所述的系统,其特征在于,
所述主服务器,用于获取所述频道的聊天分区中的每个分区组包括的特权区域中的用户的第一个数,以及获取所述每个分区组包括的普通区域中的用户的第二个数;
所述主服务器,用于将所述每个分区组对应的所述第二个数分别除以所述每个分区组对应的第一个数,得到所述每个分区组对应的第一数值;
所述主服务器,用于从所述聊天分区包括的分区组中,选择最大的第一数值对应的分区组,如果选择的分区组包括的特权区域中存在空闲的座位,则从选择的分区组包括的特权区域中选择一个空闲的座位,并将选择的空闲座位分配给所述第一用户;
所述主服务器,用于如果选择的分区组包括的特权区域中不存在空闲的座位,则在所述聊天分区中创建一个分区组,并在创建的分区组中创建一个特权区域,并从创建的特权区域中选择一个空闲的座位,并将选择的空闲的座位分配给所述第一用户。
13.如权利要求11所述的系统,其特征在于,
所述主服务器,用于获取所述频道的聊天分区中的每个分区组包括的用户的个数,选择用户的个数最少的分区组;
所述主服务器,用于在选择的分区组包括的普通区域中,判断是否存在用户数最多且存在空闲座位的普通区域,如果是,则从所述用户数最多且存在空闲座位的普通区域中选择一个空闲的座位,并将选择的空闲的座位分配给所述第一用户;
所述主服务器,用于如果否,则在所述选择的分区组中创建一个普通区域,并从创建的普通区域中选择一个空闲的座位,并将选择的空闲的座位分配给所述第一用户。
14.如权利要求9所述的系统,其特征在于,
所述聊天服务器,用于根据所述第一用户的ID,从已存储的用户ID、分区组ID和区域ID的对应关系中获取对应的分区组ID和区域ID;
所述聊天服务器,用于根据所述分区组ID和所述区域ID,从所述用户ID、分区组ID和区域ID的对应关系中获取第二用户的ID;
所述聊天服务器,用于根据所述第二用户的ID,从已存储的用户ID与前端代理设备的标识的对应关系中获取所述第二用户对应的第二终端接入的第二前端代理设备的标识;
所述聊天服务器,用于根据所述第二前端代理设备的标识,将所述第一用户的ID和所述聊天内容发送给所述第二终端。
CN201310752590.9A 2013-12-30 2013-12-30 一种对即时通讯业务进行处理的方法及系统 Active CN103731341B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310752590.9A CN103731341B (zh) 2013-12-30 2013-12-30 一种对即时通讯业务进行处理的方法及系统
PCT/CN2014/095357 WO2015101260A1 (zh) 2013-12-30 2014-12-29 对即时通讯业务进行处理的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310752590.9A CN103731341B (zh) 2013-12-30 2013-12-30 一种对即时通讯业务进行处理的方法及系统

Publications (2)

Publication Number Publication Date
CN103731341A CN103731341A (zh) 2014-04-16
CN103731341B true CN103731341B (zh) 2018-08-03

Family

ID=50455276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310752590.9A Active CN103731341B (zh) 2013-12-30 2013-12-30 一种对即时通讯业务进行处理的方法及系统

Country Status (2)

Country Link
CN (1) CN103731341B (zh)
WO (1) WO2015101260A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731341B (zh) * 2013-12-30 2018-08-03 广州华多网络科技有限公司 一种对即时通讯业务进行处理的方法及系统
CN104391863A (zh) * 2014-10-23 2015-03-04 中国建设银行股份有限公司 一种数据存储方法及装置
CN105554142B (zh) * 2015-12-24 2019-02-01 北京奇虎科技有限公司 消息推送的方法、装置及系统
CN106921503B (zh) * 2015-12-24 2020-02-21 华为技术有限公司 一种数据同步方法、装置及系统
CN105915386A (zh) * 2016-05-31 2016-08-31 努比亚技术有限公司 一种控制方法及控制器、监听设备
CN107800737A (zh) * 2016-09-05 2018-03-13 中国移动通信有限公司研究院 一种服务器集群中主节点的确定方法、装置及服务器集群
CN106357782B (zh) * 2016-09-29 2019-06-28 苏州科达科技股份有限公司 用于数据同步的多级架构、数据同步方法和故障处理方法
CN108123979A (zh) * 2016-11-30 2018-06-05 天津易遨在线科技有限公司 一种在线交流服务器集群架构
CN107360025B (zh) * 2017-07-07 2020-11-10 郑州云海信息技术有限公司 一种分布式存储系统集群监控方法及设备
CN109617986B (zh) * 2018-12-27 2020-08-07 华为技术有限公司 一种负载均衡方法及网络设备
CN111447247B (zh) * 2018-12-29 2022-07-12 阿里巴巴集团控股有限公司 一种现场验票系统
CN109862075B (zh) * 2018-12-29 2022-05-03 北京奥鹏远程教育中心有限公司 一种Redis服务实例的路由方法
CN113783904B (zh) * 2020-06-09 2023-05-09 比亚迪股份有限公司 负载均衡方法、路由服务器及负载均衡系统
CN112965818B (zh) * 2021-02-26 2022-08-26 平安普惠企业管理有限公司 一种服务集群单元化分组方法、装置、设备以及介质
CN113347038B (zh) * 2021-06-08 2022-11-22 上海天旦网络科技发展有限公司 一种旁路流量处理的循环互备高可用系统
CN114338535B (zh) * 2022-01-12 2023-09-22 平安壹钱包电子商务有限公司 基于zookeeper的集群限流方法、系统、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202746A (zh) * 2006-12-15 2008-06-18 华为技术有限公司 节点标识符生成方法及负载均衡方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102891868B (zh) * 2011-07-19 2016-09-28 上海可鲁系统软件有限公司 一种分布式系统的负载均衡方法及装置
CN102244685B (zh) * 2011-08-11 2013-09-18 中国科学院软件研究所 一种支持负载均衡的分布式缓存动态伸缩方法及系统
CN102571947B (zh) * 2011-12-29 2015-01-14 奇智软件(北京)有限公司 一种代理处理数据的方法、装置和系统
CN103023902B (zh) * 2012-12-11 2015-10-07 北京奇虎科技有限公司 数据传输方法和系统
CN103384211B (zh) * 2013-06-28 2017-02-08 百度在线网络技术(北京)有限公司 一种具有容错性的数据操作方法及分布式的数据存储系统
CN103731341B (zh) * 2013-12-30 2018-08-03 广州华多网络科技有限公司 一种对即时通讯业务进行处理的方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202746A (zh) * 2006-12-15 2008-06-18 华为技术有限公司 节点标识符生成方法及负载均衡方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
加权负载均衡技术在WebGIS中的应用;张胜 等;《计算机工程》;20100420;第284-285页 *
负载均衡技术浅析;刘爱洁;《电信工程技术与标准化》;20021230;第78-83页 *

Also Published As

Publication number Publication date
WO2015101260A1 (zh) 2015-07-09
CN103731341A (zh) 2014-04-16

Similar Documents

Publication Publication Date Title
CN103731341B (zh) 一种对即时通讯业务进行处理的方法及系统
US7590749B2 (en) Method and apparatus for multicast management of user interface in a network access device
CN101442502B (zh) 基于组播技术的会话监控方法、装置及系统
TWI479862B (zh) A method, system, and device for supporting topic classification within a group
CN107231294A (zh) 消息处理方法及装置
JP4579152B2 (ja) マルチキャスト配信システム、マルチキャスト受信情報収集装置、マルチキャスト受信情報収集方法およびコンピュータプログラム
CN100574249C (zh) 虚拟路由器冗余协议报文传输方法及装置
KR20040076857A (ko) 멀티미디어 통신을 위한 방법, 시스템 및 데이터 구조
CN102546666B (zh) 防止igmp欺骗和攻击的方法及装置
CN106549988A (zh) 加入群组方法、装置及系统
CN101160878A (zh) 共享呈现信息的方法、系统及装置
EP2218214B1 (en) Network location service
CN103117935A (zh) 应用于多归属组网的组播数据转发方法和装置
CN104618522B (zh) 终端ip地址自动更新的方法及以太网接入设备
WO2015096802A1 (zh) 消息发送方法、装置及服务器
CN109862437A (zh) 一种转发表项创建方法及bras
WO2011038639A1 (zh) 端到端即时通讯的实现方法、端到端即时通讯终端及系统
CN104869665A (zh) 控制网络连接的方法、路由器及移动设备
CN100499583C (zh) 一种简化的igmp组播代理实现方法
US9374328B1 (en) Selective messaging using online presence information
CN108024306A (zh) 一种tcp连接管理方法及网关设备
CN103986593B (zh) 动态vlan中的组播报文发送方法及发送装置
CN103780503B (zh) 一种负载均衡的实现方法和设备
CN111385324A (zh) 一种数据通信方法、装置、设备和存储介质
CN109787870A (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
CB02 Change of applicant information

Address after: 511446 Guangzhou City, Guangdong Province, Panyu District, South Village, Huambo Business District Wanda Plaza, block B1, floor 28

Applicant after: Guangzhou Huaduo Network Technology Co., Ltd.

Address before: 510655, Guangzhou, Whampoa Avenue, No. 2, creative industrial park, building 3-08,

Applicant before: Guangzhou Huaduo Network Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210113

Address after: 511442 3108, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Patentee after: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 511446 28th floor, block B1, Wanda Plaza, Wanbo business district, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140416

Assignee: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

Assignor: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Contract record no.: X2021440000053

Denomination of invention: A method and system for processing instant messaging service

Granted publication date: 20180803

License type: Common License

Record date: 20210208

EE01 Entry into force of recordation of patent licensing contract