集群远程过程调用方法及系统的制作方法_2

文档序号:8285370阅读:来源:国知局
测时长,则将对应的报文信息保存在注册服务中。
[0043]由于集群服务器可能出现故障,因此注册服务需要定期检测更新。本发明通过设定检测时长并判断注册服务收到注册请求报文后距离下一次收到注册请求报文的时长是否超出检测时长,来定期清理过期的RPC注册信息,使RPC信息保持最新状态,避免当集群服务器出现故障或移除时出现持续RPC访问故障。
[0044]本发明实施例中设定检测时长为预设周期的3倍,即30秒。当检索服务SearchServer所在的集群服务器出现故障时,注册服务在30秒内没有收到检索服务SearchServer的注册服务报文,则注册服务删除检索服务SearchServer之前的注册信息。若下次客户端再查询检索服务SearchServer,则不会查询到检索服务SearchServer的调用地址信息。
[0045]C、根据客户端需要访问的服务名称查询对应集群服务器内的注册服务,利用注册服务中保存的报文信息查询与服务名称对应的调用地址信息并返回给客户端。
[0046]当集群中某个客户端需要访问注册服务时,向客户端所在集群服务器内的注册服务发起查询请求,这里的查询请求中包括服务名称;注册服务根据保存的报文信息查询与服务名称对应的调用地址信息,并将查询得到的调用地址信息返回给客户端。
[0047]本发明实施例的集群中某个客户端需要访问检索服务,则向客户端所在的集群服务器内的注册服务发起查询请求,这里的查询请求中包括服务名称SearchServer ;注册服务根据保存的报文信息查询与SearchServer对应的调用地址信息为http://192.168.1.1/SearchServer.do,并返回给客户端。
[0048]D、客户端根据步骤C中返回的调用地址信息访问对应的服务端,服务端完成访问请求后将处理结果返回给客户端。
[0049]本发明中客户端根据步骤C中返回的调用地址信息向对应的服务端发起访问请求,服务端完成访问请求后将处理结果返回给客户端,完成集群远程过程调用。
[0050]如图3所示,为本发明的集群远程过程调用系统示意图。本发明还提出了一种集群远程过程调用系统,包括注册模块、访问模块和服务模块;
[0051]所述注册模块用于启动集群内所有注册服务,并将所述注册服务加入注册服务组播组并监听组播报文;所述注册模块收到注册请求报文后保存报文信息;当访问模块查询注册服务时,所述注册模块根据保存的报文信息查询与服务名称对应的调用地址信息并返回给访问模块;
[0052]所述访问模块设于客户端,用于根据客户端的服务名称查询注册服务,并根据注册模块返回的调用地址信息访问对应服务器;
[0053]所述服务模块设于服务端,用于按照预设周期向注册服务组播组发送注册请求报文;当访问模块访问服务器时,服务模块完成访问请求并将处理结果返回给访问模块。
[0054]本发明的集群远程过程调用系统中集群包括多个集群服务器,每个服务器中都包括注册模块、访问模块和访问模块。
[0055]本发明的集群远程过程调用系统还包括检测模块,检测模块用于判断注册模块收到注册请求报文后距离下一次收到注册请求报文的时长是否大于预设检测时长,这里的检测时长为多个预设周期时长,若注册模块收到注册请求报文后距离下一次收到注册请求报文的时长大于检测时长,则删除注册模块中保存的对应报文信息,若注册服务收到注册请求报文后距离下一次收到注册请求报文的时长小于或等于检测时长,则将对应的报文信息保存在注册服务中。
[0056]本发明的集群远程过程调用系统首先利用注册模块启动集群的每个集群服务器内的注册服务,将注册服务加入注册服务组播组并监听组播报文;再利用服务模块按照预设周期向注册服务组播组发送注册请求报文,这里的注册请求报文包括服务名称和调用地址信息;利用检测模块判断注册模块收到注册请求报文后距离下一次收到注册请求报文的时长是否大于预设检测时长,若注册模块收到注册请求报文后距离下一次收到注册请求报文的时长大于检测时长,则删除注册模块中保存的对应报文信息,若注册服务收到注册请求报文后距离下一次收到注册请求报文的时长小于或等于检测时长,则将对应的报文信息保存在注册服务中;注册模块收到注册请求报文后保存报文信息到内存或本地数据库中;当集群中某个集群服务器内的客户端需要访问注册服务时,利用访问模块根据客户端的服务名称查询注册服务,注册模块根据保存的报文信息查询与服务名称对应的调用地址信息并返回给访问模块;访问模块再根据注册模块返回的调用地址信息访问对应服务器,服务模块完成访问请求并将处理结果返回给访问模块,完成集群远程过程调用。
[0057]本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
【主权项】
1.一种集群远程过程调用方法,其特征在于,包括以下步骤: A、启动集群内的所有注册服务,将注册服务加入注册服务组播组,并监听组播报文; B、按照预设周期向注册服务组播组发送来自服务端的注册请求报文,利用注册服务接收注册请求报文并保存报文信息; C、根据客户端需要访问的服务名称查询对应集群服务器内的注册服务,利用注册服务中保存的报文信息查询与服务名称对应的调用地址信息并返回给客户端; D、客户端根据步骤C中返回的调用地址信息访问对应的服务端,服务端完成访问请求后将处理结果返回给客户端。
2.如权利要求1所述的集群远程过程调用方法,其特征在于,所述集群包括N个集群服务器,N彡I。
3.如权利要求2所述的集群远程过程调用方法,其特征在于,所述集群服务器中同时运行所述注册服务、客户端和服务端。
4.如权利要求3所述的集群远程过程调用方法,其特征在于,所述集群服务器中存储有最新服务信息库。
5.如权利要求1所述的集群远程过程调用方法,其特征在于,所述注册请求报文包括服务名称和调用地址信息。
6.如权利要求4所述的集群远程过程调用方法,其特征在于,所述步骤B还包括以下步骤: 设定检测时长为多个预设周期时长,并判断注册服务收到注册请求报文后距离下一次收到注册请求报文的时长是否大于检测时长; 若注册服务收到注册请求报文后距离下一次收到注册请求报文的时长大于检测时长,则删除注册服务中保存的对应报文信息; 若注册服务收到注册请求报文后距离下一次收到注册请求报文的时长小于或等于检测时长,则将对应的报文信息保存在注册服务中。
7.一种集群远程过程调用系统,其特征在于,包括注册模块、访问模块和服务模块; 所述注册模块用于启动集群内所有注册服务,并将所述注册服务加入注册服务组播组并监听组播报文;所述注册模块收到注册请求报文后保存报文信息;当访问模块查询注册服务时,所述注册模块根据保存的报文信息查询与服务名称对应的调用地址信息并返回给访问模块; 所述访问模块设于客户端,用于根据客户端的服务名称查询注册服务,并根据注册模块返回的调用地址信息访问对应服务器; 所述服务模块设于服务端,用于按照预设周期向注册服务组播组发送注册请求报文;当访问模块访问服务器时,服务模块完成访问请求并将处理结果返回给访问模块。
8.如权利要求7所述的集群远程过程调用系统,其特征在于,所述集群内的每个集群服务器都包括注册模块、访问模块和服务模块。
9.如权利要求8所述的集群远程过程调用系统,其特征在于,所述注册请求报文包括服务名称和调用地址信息。
10.如权利要求9所述的集群远程过程调用系统,其特征在于,还包括检测模块, 所述检测模块用于判断注册模块收到注册请求报文后距离下一次收到注册请求报文的时长是否大于预设检测时长,所述检测时长为多个预设周期时长,若注册模块收到注册请求报文后距离下一次收到注册请求报文的时长大于检测时长,则删除注册模块中保存的对应报文信息,若注册服务收到注册请求报文后距离下一次收到注册请求报文的时长小于或等于检测时长,则将对应的报文信息保存在注册服务中。
【专利摘要】本发明公开了一种集群远程过程调用方法及系统。所述方法包括以下步骤:启动注册服务并加入组播组、监听组播报文;服务端向组播组发送报文、注册服务接收报文并保存;客户端根据访问名称查询注册服务、注册服务返回调用地址信息给客户端;客户端访问服务端、服务端完成访问并返回处理结果给客户端。所述系统包括注册模块、访问模块和服务模块。本发明实现了当集群中任意数量的节点故障时RPC的查询与访问不受影响,且新加入集群的集群服务器无需配置即可在一定时间内学习到集群内所有RPC服务信息。
【IPC分类】H04L12-26, H04L29-08
【公开号】CN104601702
【申请号】CN201510024264
【发明人】吴飞
【申请人】迈普通信技术股份有限公司
【公开日】2015年5月6日
【申请日】2015年1月19日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1