[发明专利]一种实时消息交换平台及分布式集群组建方法在审
申请号: | 201310287701.3 | 申请日: | 2013-07-10 |
公开(公告)号: | CN103475566A | 公开(公告)日: | 2013-12-25 |
发明(设计)人: | 陈刚 | 申请(专利权)人: | 北京发发时代信息技术有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100122 北京市朝阳区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实时 消息 交换 平台 分布式 集群 组建 方法 | ||
1.一种实时消息交换平台,其特征在于:包括应用服务器集群和数据服务器集群,所述应用服务器集群与所述数据服务器集群通过千兆局域网络通信连接。
2.根据权利要求1所述的实时消息交换平台,其特征在于:所述数据服务器集群包括数据服务器、管理服务器、第一结构化查询语言服务器、第二结构化查询语言服务器和虚拟服务器,所述管理服务器分别与所述数据服务器和第一结构化查询语言服务器和所述第二结构化查询语言服务器通信连接,所述虚拟服务器分别与所述第一结构化查询语言服务器和所述第二结构化查询语言服务器通信连接。
3.根据权利要求2所述的实时消息交换平台,其特征在于:所述数据服务器包括多个,每个所述数据服务器分别与所述管理服务器通信连接。
4.根据权利要求1或2所述的实时消息交换平台,其特征在于:所述应用服务器包括聊天服务器、文件代理服务器和语音视频服务器,所述虚拟服务器与所述聊天服务器通信连接,所述虚拟服务器监控所述文件代理服务器和所述语音视频服务器。
5.一种实时消息交换平台分布式集群组建方法,其特征在于:
步骤一:所述应用服务器集群中的服务器分为普通节点与网关节点两种类型;
(1)普通节点:向外部客户端提供接入服务,完成登录、验证、会话管理、信息处理等实际业务功能的服务器;
(2)网关节点:对外部客户端完全透明,不直接连接外部客户端,仅与各普通节点相连,具备监控普通节点存活情况,在普通节点间转发消息等功能。
步骤二:所有节点信息存储在一张全局节点表中,由系统管理人员、节点自己共同维护全局节点表中的相关信息;每个节点在安装完毕后都由系统管理人员在全局节点表中增加一条节点数据,设置节点名称为安装时指定的节点名称、节点类型为该节点所担仟的角色类型(0/1)、是否启用设置为1/启用、是否运行则应该设置为0/停止、ip为实际IP地址、描述可不填、启动时间由节点自已启动时进行维护;若未在全局节点表中记录节点信息,该节点将无法加入集群,与其它节点间无法通讯。
(1)节点启动:节点在启动前应确保全局节点表中信息的正确,并且是否启用(isenabled)设置为1/启用;启动时,节点服务首先更新当前结点的运行状态(isstart)为1/启动、启动时间(start_time)为当前时间,然后查找全局节点表中所有已处于运行状态的节点,并缓存于节点服务器内存中;至此网关节点、普通节点按不同的算法进行下一步动作;
(2)节点停止:节点停止分为正常停止与异常停止,无论哪种停止情况,监控节点都将收到节点停止消息,当无网关节点在线时,普通节点遇到需要转发到其它节点的消息,则会直接连接至该节点,并监控该节点的在线状态,被监控节点停止时,监控节点同样会收到节点停止消息,将其从本地在线节点缓存中删除,并同步至全局节点表;
(3)集群网络自动构建:应用服务集群由若干个节点构成,其中网关节点组成集群的第一层环状网络,网关节点间不相互监控,普通节点组成集群的第二层网络,普通节点间不相互监控(无网关节点时除外)。
步骤三:全局session管理,客户端登录后,会在连接节点记录session信息,以保持会话状态。组建分布式集群网络后,session信息应该在全体节点中共亨,因此创建全局session表,由全体节点共同维护。
步骤四:负载均衡,聊天服务器集群负载均衡分为普通节点的负载均衡与网关节点的负载均衡。
(1)普通节点负载均衡,普通节点面向客户端提供接入及消息处理服务,一个集群网络包含若干个普通节点,但对外域名或IP只有一个,利用其IP隧道或IP路由技术实现负载均衡;
(2)网关节点负载均衡,在有多个网关节点的集群系统中,网关负载均衡按以下步骤运行:
1)每个普通节点需要转发信息时,先在本地缓存中查找在线网关节点;
2)按设定的负载均衡算法选择一个网关节点;
3)将目标节点及转发信息组包发送网关节点;
4)网关节点收到一个转发包后,判断目标节点是否在线;
5)若在线,则转发信息;
6)若不在线,则转入离线信息处理。
步骤五:消息路由,Server中的消息主要为分为presence、iq、message三种。
(1)presence,在集群系统中,发送一个presence信息遵循如下路由规则:
1)查找目标用户(xxx@yyycom/zzz)是否已登录;
2)目标用户未登录则丢弃该消息;
3)目标用户已登录,判断其登录节点是否本节点;
4)是本节点,则直接发送消息;
5)不是本节点,将目标节点与消息组包,按负载均衡算法选择一网关节点,转发消息;
6)普通节点收到一个网关节点发来消息后,判断目标节点是否自己;
7)若不是,则丢弃该消息;
8)若是,则判断目标用户是否在本结点登录;
9)若不是,则丢弃该消息;
10)若是,则向目标用户发送该消息。
(2)iq,在集群系统中,发送一个iq信息遵循如下路由规则:
1)查找iq消息是否包含目标用户;
2)若无,则直接本节点进行处理;
3)若有,查找目标用户(xxx@yyycom/zzz)是否已登录;
4)目标用户未登录则返回错误信息;
5)目标用户已登录,判断其登录节点是否本节点;
6)是本节点,则直接发送消息;
7)不是本节点,将目标节点与消息组包,按负载均衡算法选择一网关节点,转发消息;
8)普通节点收到一个网关节点发来消息后,判断目标节点是否自己;
9)若不是,则丢弃该消息;
10)若是,则判断目标用户是否在本结点登录;
11)若不是,则丢弃该消息;
12)若是,则向目标用户发送该消息。
(3)message,在集群系统中,发送一个message信息遵循如下路由规则:
1)查找message消息的目标用户是否指定特定资源(res);
2)若未指定,如:xxx@yyycom,则在全局session中查找该用户优先级最高的session;
3)若已指定,则判断该用户是否已登录;
4)若目标用户未登录,则转入离线message消息处理;
5)若目标用户已登录,判断其登录节点是否本节点;
6)是本节点,则直接发送消息;
7)不是本节点,将目标节点与消息组包,按负载均衡算法选择一网关节点,转发消息;
8)普通节点收到一个网关节点发来消息后,判断目标节点是否自己;
9)若不是,则丢弃该消息;
10)若是,则判断目标用户是否在本结点登录;
11)若不是,则转入离线消息处理(可能因客户端异常断开造成);
12)若是,则向目标用户发送该消息。
步骤六:文件代理服务器集群,Server在文件代理服务器集群时,考虑将每个节点的代理服务映射到对外域名或IP的一个特定端口,在进行文件代理传输前由服务器为客户端分配一个代理服务节点,确保参与传输的双方都连接至同一代理服务节点。
步骤七:语音视频服务器集群,Server在语音视频服务器集群时,考虑将每个节点的服务映射到对外域名或IP的一个特定端口,在进行流数据传输前由服务器为客户端分配一个服务节点,确保参与传输的多方客户端都连接至同一服务节点。
步骤八:数据库设计采用my结构化查询语言服务器进行分布式集群,由1个管理节点、2个结构化查询语言服务器节点、2个数据节点构成,数据分片存储、复制2份,分别存储于各个数据节点中,整体在逻辑形成一个完整的数据库,对外通过虚拟服务器由结构化查询语言服务器提供数据访问服务;后期根据数据量的增长、访问量增加等实际运行情况增加结构化查询语言服务器节点以及数据节点的数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京发发时代信息技术有限公司,未经北京发发时代信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310287701.3/1.html,转载请声明来源钻瓜专利网。