一种跨机房单点服务调用方法技术

技术编号:35742264 阅读:11 留言:0更新日期:2022-11-26 18:45
本发明专利技术公开了一种跨机房单点服务调用方法,其特征在于,包括:配置服务程序,所述服务程序包含代理程序和管理程序;所述代理程序部署在应用程序和单点服务之间,用于将应用程序的服务请求路由至单点服务;所述管理程序通过控制指令管理代理程序地址和单点服务地址;应用程序通过代理程序请求调用单点服务;单点服务通过代理程序返回请求结果至应用程序;待单点服务处理完请求后,按照请求路径返回结果;管理程序控制并监控多机房内单点服务地址更新切换。达到降低了多机房环境中单点服务修改的复杂性,保证所有机房内单点服务调用的一致性,避免出现多个单点服务同时服务的效果。避免出现多个单点服务同时服务的效果。避免出现多个单点服务同时服务的效果。

【技术实现步骤摘要】
一种跨机房单点服务调用方法


[0001]本专利技术属于微服务治理领域,具体涉及到一种跨机房单点服务调用方法。

技术介绍

[0002]全球性的B2B在线交易网站的由于卖家在中国,而买家分布全球各个国家,因此,为了提升网站用户的访问速度,网站运营方会在全球多个城市建设机房,以便于海外买家能就近地请求服务。然而并非所有数据都能就近请求,比如价格、库存等强一致数据,需要集中到单一机房内进行处理,以避免数据错误给网站和用户造成不便,甚至利益受损。这些需要集中在单个机房内执行强一致数据的处理程序,被定义为单点服务。如果多个机房同时处理强一致数据,将会出现数据处理重复及多机房内数据不一致等严重问题;
[0003]为了能将有强一致要求的数据集中到一个机房执行读写,通常采用域名的方式访问单点服务,通过DNS服务器解析域名获取单点服务所在机房的地址,将访问请求转发至指定机房;如若遇到因指定机房故障而要切换到其他机房时,DNS服务器需同步变更域名对应的机房地址,由于机房跨国存在DNS变更的生效时效延迟,将导致部分服务器的地址更新不及时,进一步导致请求单点服务时,将出现多个机房内单点服务提供服务,造成数据出错或数据不一致。
[0004]其次,诸多B2B电子商务在线交易网站的内部服务调用协议是基于TCP的RPC协议,而非HTTP协议,因此应用只能通过配置单点服务地址,应用才能调用单点服务;若单点服务地址临时变更,应用配置相应地需要改变,应用对单点服务调用结构的过度依赖,增加单点服务管理及配置的复杂度。
[0005]专利“单点服务处理装置和单点服务处理方法”(申请号:201110177646.3)提出在服务器集群中,根据预设启动规则选择服务器,并在服务器内启动单点服务,虽然利用禁止其他服务器启动单点服务,能保证在集群服务器中单点服务启动的唯一性,然而本专利仅是解决单点服务启动问题,并未明确启动的单点服务一定有效;其次单点服务异常时的新服务启动后,针对如何保证异常时多个单点服务的数据一致性,也未给出更清晰的解决方案。
[0006]因此,急需解耦应用和单点服务调用结构的技术方法,并能彻底消除数据不一致的现象。

技术实现思路

[0007]为了解决上面的问题,本专利技术提供一种跨机房单点服务调用的方法。本专利技术利用代理机制,通过代理程序承接应用的请求和单点服务的定位及调用,通过管理程序控制代理程序对单点服务的调用,保证单点服务地址在所有机房的一致性;本专利技术中的应用程序只与代理程序通信,单点服务的修改并不会影响应用代码的调整及配置,只需由管理程序调用所有机房的代理程序切换到新的单点服务即可,一方面降低了多机房环境中单点服务修改的复杂性,另一方面保证所有机房内单点服务调用的一致性,避免出现多个单点服务
同时服务的情况。
[0008]本专利技术的技术方案是提供一种跨机房单点服务调用方法,其特征在于,具体步骤包含:
[0009]步骤1:配置服务程序,所述服务程序包含代理程序和管理程序;所述代理程序部署在应用程序和单点服务之间,用于将应用程序的服务请求路由至单点服务;所述管理程序通过控制指令管理代理程序地址和单点服务地址;所述代理程序地址用于定位代理程序;所述单点服务地址定位单点服务,所述代理程序地址和所述单点服务地址均由相应的部署机房和部署地址组成;所述部署机房由机房名表示;所述部署地址由URL地址表示;步骤2:应用程序通过代理程序请求调用单点服务;包含:将应用程序配置文件中的单点服务地址配置为代理程序地址;应用程序根据配置文件中的地址,向代理程序发送单点服务调用请求;所述代理程序解析调用请求中的服务名;并根据服务名分析获取部署所述单点服务地址;代理程序按照单点服务地址定位单点服务,并将调用请求路由至所述单点服务;
[0010]步骤3:单点服务通过代理程序返回请求结果至应用程序;待单点服务处理完请求后,按照步骤2的请求路径返回结果,具体是:请求结果由单点服务返回给代理程序,由代理程序反馈至应用程序;
[0011]步骤4:管理程序控制并监控多机房内单点服务地址更新切换;管理程序根据获取的新的单点服务地址写入控制指令,通过各机房的代理程序的部署地址调用相应的代理程序并发送控制指令,控制代理程序接收新的单点服务地址保存替换,同时管理程序根据各机房代理程序反馈的地址保存结果和地址替换结果,判断各机房的代理程序内单点服务地址是否一致;若任一机房代理程序反馈的结果是不成功,则各机房的代理程序内单点服务地址不一致,管理程序控制各机房的代理程序将单点服务地址修改为旧地址。
[0012]在所述步骤1中,所述配置服务程序包含:为代理程序创建2个对外服务的接口,其中,第一接口接收应用程序的单点服务调用请求,第二接口接收管理程序的控制指令;所述管理程序以可视化界面,接收用户请求并生成控制指令。
[0013]在所述步骤1中,所述配置代理程序具体包含:在多机房环境中,任选一个机房部署管理程序;为每个机房部署代理程序;单点服务地址以键值对形式存储在代理程序的数据库中,存储格式是:[服务名:机房名+URL地址]。
[0014]所述步骤2的请求调用单点服务的具体步骤包含:
[0015]代理程序的第一接口接收到单点服务调用请求时,代理程序从请求参数中提取单点服务的服务名;根据服务名,从数据库中筛选对应的单点服务地址;若其中的机房名与代理程序的机房名一致,代理程序利用URL地址定位当前机房内的单点服务,并将请求路由至所述单点服务;若其中的机房名与代理程序的的机房名不一致,则代理程序和所述调用的单点服务不同在一个机房,以部署所述单点服务的机房为目标机房,根据机房名获取目标机房的代理程序地址,当前机房的代理程序将调用请求连同当前机房的代理程序地址、URL地址先转发至目标机房的代理程序,由目标机房的代理程序根据URL地址定位目标机房内的单点服务,并将调用请求路由至所述单点服务。
[0016]在所述步骤3中,按照步骤2的请求路径返回结果的具体流程包含:
[0017]步骤3

1:单点服务将请求结果返回给同机房的代理程序;
[0018]步骤3

2:所述代理程序判断调用请求的发送方;若步骤2的调用请求中包含机房
的代理程序地址,则发送方是代理程序,执行步骤3

3;若步骤2的调用请求中未包含机房的代理程序地址,则发送方是应用程序,所述代理程序将请请求结果返回给应用程序;
[0019]步骤3

3:按照机房的代理程序地址,将请求结果返回给其他机房的代理程序,再由所述代理程序返回给同机房的应用程序。
[0020]在所述步骤4中,所述控制指令包含地址存储指令和地址切换指令;
[0021]所述步骤4具体包含:
[0022]步骤4

1:管理程序在保存新的单点服务地址时,不删除旧的单点服务旧地址;
[0023]步骤4

2:管理程序按照各机房的代理程序地址调用代理程序本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种跨机房单点服务调用方法,其特征在于,具体步骤包含:步骤1:配置服务程序,所述服务程序包含代理程序和管理程序;所述代理程序部署在应用程序和单点服务之间,用于将应用程序的服务请求路由至单点服务;所述管理程序通过控制指令管理代理程序地址和单点服务地址;所述代理程序地址用于定位代理程序;所述单点服务地址定位单点服务,所述代理程序地址和所述单点服务地址均由相应的部署机房和部署地址组成;所述部署机房由机房名表示;所述部署地址由URL地址表示;步骤2:应用程序通过代理程序请求调用单点服务;包含:将应用程序配置文件中的单点服务地址配置为代理程序地址;应用程序根据配置文件中的地址,向代理程序发送单点服务调用请求;所述代理程序解析调用请求中的服务名;并根据服务名分析获取部署所述单点服务地址;代理程序按照单点服务地址定位单点服务,并将调用请求路由至所述单点服务;步骤3:单点服务通过代理程序返回请求结果至应用程序;待单点服务处理完请求后,按照步骤2的请求路径返回结果,具体是:请求结果由单点服务返回给代理程序,由代理程序反馈至应用程序;步骤4:管理程序控制并监控多机房内单点服务地址更新切换;管理程序根据获取的新的单点服务地址写入控制指令,通过各机房的代理程序的部署地址调用相应的代理程序并发送控制指令,控制代理程序接收新的单点服务地址保存替换,同时管理程序根据各机房代理程序反馈的地址保存结果和地址替换结果,判断各机房的代理程序内单点服务地址是否一致;若任一机房代理程序反馈的结果是不成功,则各机房的代理程序内单点服务地址不一致,管理程序控制各机房的代理程序将单点服务地址修改为旧地址。2.如权利要求1所述的一种跨机房单点服务调用方法,其特征在于,在所述步骤1中,所述配置服务程序包含:为代理程序创建2个对外服务的接口,其中,第一接口接收应用程序的单点服务调用请求,第二接口接收管理程序的控制指令;所述管理程序以可视化界面,接收用户请求并生成控制指令。3.如权利要求2所述的一种跨机房单点服务调用方法,其特征在于,在所述步骤1中,所述配置代理程序具体包含:在多机房环境中,任选一个机房部署管理程序;为每个机房部署代理程序;单点服务地址以键值对形式存储在代理程序的数据库中,存储格式是:[服务名:机房名+URL地址]。4.如权利要求3所述的一种跨机房单点服务调用方法,其特征在于,所述步骤2的请求调用单点服务的具体步骤包含:代理程序的第一接口接收到单点服务调用请求时,代理程序从请求参数中提取单点服务的服务名;根据服务名,从数据库中筛选对应的单点服务地址;若其中的机房名与代理程序的机...

【专利技术属性】
技术研发人员:王亚军
申请(专利权)人:焦点科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1