CN108810037A - 分布式集群服务的实现方法和系统 - Google Patents
分布式集群服务的实现方法和系统 Download PDFInfo
- Publication number
- CN108810037A CN108810037A CN201710285291.7A CN201710285291A CN108810037A CN 108810037 A CN108810037 A CN 108810037A CN 201710285291 A CN201710285291 A CN 201710285291A CN 108810037 A CN108810037 A CN 108810037A
- Authority
- CN
- China
- Prior art keywords
- service
- node
- request
- service module
- module
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种分布式集群服务的实现方法和系统,其中方法包括:客户端采用组播的方式向分布式集群站点发送服务请求,服务请求携带客户端标识和指定的处理服务请求的服务模块标识;当分布式集群站点中各服务节点的相应服务模块接收到服务请求后,触发根据服务请求,判断本服务模块是否为处理服务请求的服务模块,如果是,则执行对相应处理过程;当服务模块需要调用其他节点的服务模块时,触发所属节点的服务控制模块采用组播的方式发送调用请求;调用的目标服务模块采用组播的方式,反馈调用请求的执行结果;当服务模块需要发送服务请求的执行结果时,采用点对点的方式,发送执行结果给客户端。采用本发明,可以提高系统的安全性和扩展能力。
Description
技术领域
本发明涉及网络通信技术,特别是涉及一种分布式集群服务的实现方法和系统。
背景技术
分布式集群在服务海量用户的系统里使用越来越多,随着移动互联网服务的发展,基本上都采用分布式集群的方式,支持服务节点(APP Node)按需扩展,其实现方案通常具有如下特点:
1)有一个前置代理(Access Node),对外提供一个虚拟IP地址,客户端一般连接到该IP地址。
2)前置代理提供某种负载分配功能,可以是网络层负载分担(又叫三层),也可以是应用层负载分担(七层)。
3)服务节点地位等同,相互之间一般没有业务接口,而是通过缓存或者数据库来共享数据的方式进行交互。
4)一般有一个全局的数据节点(DB Node),或者是物理的,或者是逻辑的;但是要求数据是逻辑上统一的,物理上可能通过同步复制的方式表现为多个。
随着移动互联网服务的发展,尤其是物联网兴起,服务规模的扩大化,上述传统的分布式集群架构逐渐暴露一些伸缩性(即扩展受限的问题)和安全性方面的问题。由于传统的分布式集群中的前置代理节点一般为单节点,随着集群规模的扩大,单节点有限的处理能力将成为集群扩展的瓶颈,针对该问题,虽然可以采用其他方式加以缓解,比如多层代理,硬件前置等,但是这些方式只不过将代理节点不断前移,始终无法彻底消除。
另外,在传统的分布式集群中的,前置节点需要配置有一个公网可访问的IP,非法用户容易利用该IP进入分布式集群,从而造成安全性问题;并且该前置节点需要维护与海量客户端的连接建立和连接维护,所有连接类的应用都需要经过该节点,从而使得前置节点成为网络层的扩展瓶颈。
由此可见,现有分布式集群的服务实现方案存在伸缩性和安全性方面的问题,无法满足大规模集群服务的需要。
发明内容
有鉴于此,本发明的主要目的在于提供一种分布式集群服务的实现方法和系统,可以有效解决现有方案的伸缩性和安全性问题。
为了达到上述目的,本发明提出的技术方案为:
一种分布式集群服务的实现方法,包括:
客户端采用组播的方式向分布式集群站点发送服务请求,所述服务请求携带客户端标识和指定的处理服务请求的服务模块标识;
当所述分布式集群站点中各服务节点的相应服务模块接收到所述服务请求后,触发根据所述服务请求,判断本服务模块是否为所述指定的处理服务请求的服务模块,如果是,则执行对所述服务请求的处理过程;
当所述服务模块需要调用其他节点的服务模块时,触发所属节点的服务控制模块采用组播的方式发送相应的调用请求;所述调用的目标服务模块采用组播的方式,反馈所述调用请求的执行结果;
当所述服务模块需要发送所述服务请求的执行结果时,采用点对点的方式,将相应的执行结果发送给所述客户端。
一种分布式集群服务的实现系统,包括:
客户端,用于采用组播的方式向分布式集群站点发送服务请求,所述服务请求携带客户端标识和指定的处理服务请求的服务模块标识;
服务节点,位于所述分布式集群站点中,用于在本服务节点的相应服务模块接收到所述服务请求后,触发根据所述服务请求,判断本服务模块是否为所述指定的处理服务请求的服务模块,如果是,则执行对所述服务请求的处理过程;当所述服务模块需要调用其他节点的服务模块时,触发所属节点的服务控制模块采用组播的方式发送相应的调用请求;所述调用的目标服务模块采用组播的方式,反馈所述调用请求的执行结果;当所述服务模块需要发送所述服务请求的执行结果时,采用点对点的方式,将相应的执行结果发送给所述客户端。
综上所述,本发明提出的分布式集群服务的实现方法和系统,客户端采用组播的方式与分布式集群站点中的服务节点进行交互,服务节点间采用组播的方式进行交互,如此,将不需要再设置前置节点,从而可以有效避免前置节点所产生的诸多问题,有效提高系统的安全性和扩展能力。
附图说明
图1为本发明实施例的方法流程示意图;
图2为本发明实施例的系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:取消前置代理节点,并引入组播的方式发送服务请求,如此,可以避免前置代理节点所造成的分布式集群扩展受限的问题,同时还可以利用组播提高系统的安全性。
图1为本发明实施例的流程示意图,如图1所示,该实施例的分布式集群服务的实现方法,包括:
步骤101、客户端采用组播的方式向分布式集群站点发送服务请求,所述服务请求携带客户端标识和指定的处理服务请求的服务模块标识。
本步骤中,与现有方案所不同的是,客户端采用组播的方式发送服务请求给分布式集群站点,如此,而不再通过设置前置节点与客户端进行交互,从而可以避免为前置节点分配的公用IP所致的安全问题,进而可以提高系统的安全性。另外,本步骤中,服务请求通过组播到达多个服务节点,由服务节点自行选定一个服务者,从而可以提高接入效率,使得本实施例可以支持负载均衡并无需前置代理服务。
较佳地,发送所述服务请求时网络层所使用的组播地址可以采用三级标识的方式实现,即采用site_id.node_id.app_id的三级标识。其中,site_id为站点标识,node_id为服务节点标识,app_id为服务模块标识。
步骤102、当所述分布式集群站点中各服务节点的相应服务模块接收到所述服务请求后,触发根据所述服务请求,判断本服务模块是否为所述指定的处理服务请求的服务模块,如果是,则执行对所述服务请求的处理过程。
本步骤中,根据发送所述发送服务请求的组播地址,该组播地址所指示的分布式集群站点中的各服务节点将会收到该服务请求,每个服务节点会进一步判断是否需要处理该服务请求,如果需要,则触发相应的处理,否则,将忽略该请求。
较佳地,可以预先设置每个服务节点中专用于与信息交互的服务控制模块App_0,该服务控制模块App_0将会收到客户端的服务请求,此后,可由该服务控制模块App_0将服务请求发送给组播地址所指定的处理服务请求的服务模块App_x,由该服务模块App_x决策是否需要处理该服务请求。
较佳地,可以采用下述方法判断本服务模块是否为所述指定的处理服务请求的服务模块:
按照预设的客户端标识与节点标识的映射关系,根据所述服务请求携带的客户端标识,确定该客户端标识对应的节点标识;
如果所确定的节点标识为本服务模块所属节点的标识,且本服务模块的标识与所述服务请求携带的服务模块标识相同,则判断本服务模块为所述指定的处理服务请求的服务模块。
步骤103、当所述服务模块需要调用其他节点的服务模块时,触发所属节点的服务控制模块采用组播的方式发送相应的调用请求;所述调用的目标服务模块采用组播的方式,反馈所述调用请求的执行结果。
这里,当服务某个请求时,如果需要调用其他的子服务,比如app_#y,或者需要建立到另外一个site上的连接,则采用同样的方式,服务控制模块通过组播发送请求到app_#y,其他节点或者其他站点上的app_#y会提供服务。
本步骤中,同一集群站点或不同集群站点的服务节点之间进行交互时,采用组播的方式实现,使得本实施例可以支持高效率连接服务,比如大规模多地点群组通信系统,物联网通信等服务,从而支持在更大的范围内建立连接,包括多点连接。
较佳地,发送所述调用请求时网络层所使用的组播地址采用site_id.node_id.app_id的方式标识,其中,site_id为站点标识;node_id为节点标识,app_id为服务模块标识。
步骤104、当所述服务模块需要发送所述服务请求的执行结果时,采用点对点的方式,将相应的执行结果发送给所述客户端。
较佳地,所述服务模块可以通过所属节点的服务控制模块采用点对点的方式,将相应的执行结果发送给所述客户端。
进一步地,当所述服务模块需要查找或轮询客户端时,为了提高轮询服务的效率,可以通过下行组播方式来实现,即:当所述服务模块需要查找或轮询客户端时,采用组播的方式发送相应的查找请求;所述客户端根据所述查找请求,采用点对点的方式反馈相应的响应消息。
需要说明的是,在实际应用中,上述实施例中组播的三段地址可以支持通配符,这样,组播的范围可以为单个分布式集群站点内部,也可以为多个分布式集群站点之间。
在实际应用中,上述分布式集群服务的实现方法可以实现互连网群组通信服务(比如点对点语音、群组语音、视频会议、即时通信等)、大规模物联网接入服务(比如接入、查询、轮询、建立连接等)、大规模家用(民用)视频监控与直播服务(比如摄像头接入,手机观看摄像头,视频直播服务等)等海量服务应用场景。
图2为与上述方法对应的一种分布式集群服务的实现系统结构示意图,如图2所示,该系统包括:
客户端,用于采用组播的方式向分布式集群站点发送服务请求,所述服务请求携带客户端标识和指定的处理服务请求的服务模块标识;
服务节点,位于所述分布式集群站点中,用于在本服务节点的相应服务模块接收到所述服务请求后,触发根据所述服务请求,判断本服务模块是否为所述指定的处理服务请求的服务模块,如果是,则执行对所述服务请求的处理过程;当所述服务模块需要调用其他节点的服务模块时,触发所属节点的服务控制模块采用组播的方式发送相应的调用请求;所述调用的目标服务模块采用组播的方式,反馈所述调用请求的执行结果;当所述服务模块需要发送所述服务请求的执行结果时,采用点对点的方式,将相应的执行结果发送给所述客户端。
较佳地,所述服务节点,用于按照预设的客户端标识与节点标识的映射关系,根据所述服务请求携带的客户端标识,确定该客户端标识对应的节点标识;如果所确定的节点标识为本服务模块所属节点的标识,且本服务模块的标识与所述服务请求携带的服务模块标识相同,则判断本服务模块为所述指定的处理服务请求的服务模块。
较佳地,所述客户端,用于在发送所述服务请求时网络层所使用的组播地址采用site_id.node_id.app_id的方式标识,其中,site_id为站点标识,node_id为节点标识,app_id为服务模块标识。
较佳地,所述服务节点,用于在发送所述调用请求时网络层所使用的组播地址采用site_id.node_id.app_id的方式标识,其中,site_id为站点标识;node_id为节点标识,app_id为服务模块标识。
较佳地,所述服务节点,进一步用于当所述服务模块需要查找或轮询客户端时,采用组播的方式发送相应的查找请求。
所述客户端,进一步用于根据所述查找请求,采用点对点的方式反馈相应的响应消息。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分布式集群服务的实现方法,其特征在于,包括:
客户端采用组播的方式向分布式集群站点发送服务请求,所述服务请求携带客户端标识和指定的处理服务请求的服务模块标识;
当所述分布式集群站点中各服务节点的相应服务模块接收到所述服务请求后,触发根据所述服务请求,判断本服务模块是否为所述指定的处理服务请求的服务模块,如果是,则执行对所述服务请求的处理过程;
当所述服务模块需要调用其他节点的服务模块时,触发所属节点的服务控制模块采用组播的方式发送相应的调用请求;所述调用的目标服务模块采用组播的方式,反馈所述调用请求的执行结果;
当所述服务模块需要发送所述服务请求的执行结果时,采用点对点的方式,将相应的执行结果发送给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述判断本服务模块是否为所述指定的处理服务请求的服务模块包括:
按照预设的客户端标识与节点标识的映射关系,根据所述服务请求携带的客户端标识,确定该客户端标识对应的节点标识;
如果所确定的节点标识为本服务模块所属节点的标识,且本服务模块的标识与所述服务请求携带的服务模块标识相同,则判断本服务模块为所述指定的处理服务请求的服务模块。
3.根据权利要求1所述的方法,其特征在于,发送所述服务请求时网络层所使用的组播地址采用site_id.node_id.app_id的方式标识,其中,site_id为站点标识,node_id为服务节点标识,app_id为服务模块标识。
4.根据权利要求1所述的方法,其特征在于,发送所述调用请求时网络层所使用的组播地址采用site_id.node_id.app_id的方式标识,其中,site_id为站点标识;node_id为服务节点标识,app_id为服务模块标识。
5.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当所述服务模块需要查找或轮询客户端时,采用组播的方式发送相应的查找请求;
所述客户端根据所述查找请求,采用点对点的方式反馈相应的响应消息。
6.一种分布式集群服务的实现系统,其特征在于,包括:
客户端,用于采用组播的方式向分布式集群站点发送服务请求,所述服务请求携带客户端标识和指定的处理服务请求的服务模块标识;
服务节点,位于所述分布式集群站点中,用于在本服务节点的相应服务模块接收到所述服务请求后,触发根据所述服务请求,判断本服务模块是否为所述指定的处理服务请求的服务模块,如果是,则执行对所述服务请求的处理过程;当所述服务模块需要调用其他节点的服务模块时,触发所属节点的服务控制模块采用组播的方式发送相应的调用请求;所述调用的目标服务模块采用组播的方式,反馈所述调用请求的执行结果;当所述服务模块需要发送所述服务请求的执行结果时,采用点对点的方式,将相应的执行结果发送给所述客户端。
7.根据权利要求6所述的系统,其特征在于,所述服务节点,用于按照预设的客户端标识与节点标识的映射关系,根据所述服务请求携带的客户端标识,确定该客户端标识对应的节点标识;如果所确定的节点标识为本服务模块所属节点的标识,且本服务模块的标识与所述服务请求携带的服务模块标识相同,则判断本服务模块为所述指定的处理服务请求的服务模块。
8.根据权利要求6所述的系统,其特征在于,所述客户端,用于在发送所述服务请求时网络层所使用的组播地址采用site_id.node_id.app_id的方式标识,其中,site_id为站点标识,node_id为服务节点标识,app_id为服务模块标识。
9.根据权利要求6所述的系统,其特征在于,所述服务节点,用于在发送所述调用请求时网络层所使用的组播地址采用site_id.node_id.app_id的方式标识,其中,site_id为站点标识;node_id为服务节点标识,app_id为服务模块标识。
10.根据权利要求6所述的系统,其特征在于,
所述服务节点,进一步用于当所述服务模块需要查找或轮询客户端时,采用组播的方式发送相应的查找请求;
所述客户端,用于根据所述查找请求,采用点对点的方式反馈相应的响应消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710285291.7A CN108810037B (zh) | 2017-04-27 | 2017-04-27 | 分布式集群服务的实现方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710285291.7A CN108810037B (zh) | 2017-04-27 | 2017-04-27 | 分布式集群服务的实现方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108810037A true CN108810037A (zh) | 2018-11-13 |
CN108810037B CN108810037B (zh) | 2020-11-27 |
Family
ID=64069981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710285291.7A Active CN108810037B (zh) | 2017-04-27 | 2017-04-27 | 分布式集群服务的实现方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108810037B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979164A (zh) * | 2022-04-14 | 2022-08-30 | 网易(杭州)网络有限公司 | 虚拟房间的分配方法、装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102647704A (zh) * | 2012-04-23 | 2012-08-22 | 中国联合网络通信集团有限公司 | 数据传输处理方法、基站和系统 |
CN104735629A (zh) * | 2013-12-23 | 2015-06-24 | 成都鼎桥通信技术有限公司 | 一种全业务集群通信系统中广播通信的方法 |
CN104754618A (zh) * | 2013-12-31 | 2015-07-01 | 索尼公司 | 无线数据传输方法和装置 |
CN105607951A (zh) * | 2015-12-17 | 2016-05-25 | 北京奇虎科技有限公司 | 处理数据请求及获取服务器信息的方法及装置 |
WO2016123547A1 (en) * | 2015-01-30 | 2016-08-04 | Kyocera Corporation | Transmission mechanism selection for point to multipoint (ptm) compatible services using serving cell information |
-
2017
- 2017-04-27 CN CN201710285291.7A patent/CN108810037B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102647704A (zh) * | 2012-04-23 | 2012-08-22 | 中国联合网络通信集团有限公司 | 数据传输处理方法、基站和系统 |
CN104735629A (zh) * | 2013-12-23 | 2015-06-24 | 成都鼎桥通信技术有限公司 | 一种全业务集群通信系统中广播通信的方法 |
CN104754618A (zh) * | 2013-12-31 | 2015-07-01 | 索尼公司 | 无线数据传输方法和装置 |
WO2016123547A1 (en) * | 2015-01-30 | 2016-08-04 | Kyocera Corporation | Transmission mechanism selection for point to multipoint (ptm) compatible services using serving cell information |
CN105607951A (zh) * | 2015-12-17 | 2016-05-25 | 北京奇虎科技有限公司 | 处理数据请求及获取服务器信息的方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979164A (zh) * | 2022-04-14 | 2022-08-30 | 网易(杭州)网络有限公司 | 虚拟房间的分配方法、装置和电子设备 |
CN114979164B (zh) * | 2022-04-14 | 2023-11-17 | 网易(杭州)网络有限公司 | 虚拟房间的分配方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108810037B (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105635345B (zh) | 域名资源记录管理方法和装置 | |
CN109743415B (zh) | 一种公有云网络弹性ip实现方法及系统 | |
US9614748B1 (en) | Multitenant data center providing virtual computing services | |
US8200789B2 (en) | Method, system and program product for automated topology formation in dynamic distributed environments | |
US7792944B2 (en) | Executing programs based on user-specified constraints | |
EP3920562B1 (en) | Methods and system for performing charging processing on network slice client, and related devices | |
US20240176672A1 (en) | Systems and methods providing serverless dns integration | |
WO2023000935A1 (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
CN107925681A (zh) | 用于分布式软件定义网络分组核心系统中的负载平衡的系统和方法 | |
EP2838243B1 (en) | Capability aggregation and exposure method and system | |
CN103475566A (zh) | 一种实时消息交换平台及分布式集群组建方法 | |
CN103607430A (zh) | 一种网络处理的方法和系统及网络控制中心 | |
CN108494835B (zh) | 基于Raft算法的分布式动态路由的实现方法及系统 | |
CN108965372A (zh) | 一种服务调度方法和装置 | |
CN106657314A (zh) | 跨数据中心数据同步系统及方法 | |
US20190166196A1 (en) | Data replication for a virtual networking system | |
CN111970362A (zh) | 基于lvs的车联网网关集群方法及系统 | |
CN113826424B (zh) | 用于向网络提供外部业务的实体 | |
CN106790084A (zh) | 一种基于ice中间件的异构资源集成框架及其集成方法 | |
CN102447734A (zh) | 一种税务云计算网开im在线客服系统云端服务方法 | |
CN111541765B (zh) | 一种用于多级路由调度的方法及系统 | |
CN112910796B (zh) | 流量管理方法、装置、设备、存储介质以及程序产品 | |
CN108810037A (zh) | 分布式集群服务的实现方法和系统 | |
WO2016000303A1 (zh) | 一种资源分配方法、系统及计算机存储介质 | |
JP4251148B2 (ja) | グループ内通信方法、システム及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |