【技术实现步骤摘要】
一种服务切换方法和装置
[0001]本专利技术涉及计算机
,尤其涉及一种服务切换方法和装置。
技术介绍
[0002]为保证RPC服务高可用,RPC服务发生异常时(例如无服务提供者异常、超时异常),需具备跨机房灾备重试能力。RPC服务提供者别名切换时,RPC服务消费者也需及时切换,以应对依赖服务的容灾能力。
[0003]在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:
[0004]服务异常重试具有随机性,不能保证跨机房重试。例如:当机房A服务全部异常时,理想场景是打到机房A的请求在发现异常后会自动重试打到机房B,但实际场景由于重试请求的随机性会再将请求打到机房A,导致请求失败。
[0005]RPC服务切换主要依赖于服务别名的切换,但服务别名多采用资源文件方式配置,资源文件只会在服务容器启动时被重新加载,一旦涉及服务切换就需要重启容器。因此,重启容器切换服务别名时效性较低,且会影响容器内其他服务不可用。
技术实现思路
[0006]有鉴于此,本专利技术实施例提供一种服 ...
【技术保护点】
【技术特征摘要】
1.一种服务切换方法,其特征在于,包括:根据消费者服务所在机房标识,从服务调用策略中获取提供者服务所在的第一机房标识;根据所述提供者服务所在的第一机房标识,从实例容器中获取所述提供者服务的第一主实例;其中,所述提供者服务的第一主实例标识与所述第一机房标识相同;调用所述提供者服务的第一主实例,以发起调用部署在所述第一机房的所述提供者服务的请求;若所述提供者服务的第一主实例的调用结果为调用异常,则进行跨机房重试。2.根据权利要求1所述的方法,其特征在于,若所述提供者服务的第一主实例的调用结果为调用异常,则进行跨机房重试,包括:判断所述提供者服务的第一主实例的调用结果是否为调用异常;若是,则从所述实例容器中获取所述提供者服务的第一从实例;其中,所述提供者服务的第一从实例标识与所述第一机房标识不同,所述提供者服务的第一从实例标识与第二机房标识相同;调用所述提供者服务的第一从实例,以发起调用部署在所述第二机房的所述提供者服务的请求。3.根据权利要求2所述的方法,其特征在于,判断所述提供者服务的第一主实例的调用结果是否为调用异常,包括:判断所述提供者服务的第一主实例是否抛出异常;若是,则继续判断所述异常是否为远程过程调用异常。4.根据权利要求1所述的方法,其特征在于,还包括:若所述第一机房故障,则从所述实例容器中获取所述提供者服务的第二主实例;其中,所述提供者服务的第二主实例标识与所述第一机房标识不同,所述提供者服务的第二主实例标识与第二机房标识相同;调用所述提供者服务的第二主实例,以发起调用部署在所述第二机房的所述提供者服务的请求。5.根据权利要求4所述的方法,其特征在于,调用所述提供者服务的第二主实例之后,还包括:判断所述提供者服务的第二主实例的调用结果是否为调用异常;若是,则从所...
【专利技术属性】
技术研发人员:贾兴武,鲍阳,谢龙,
申请(专利权)人:北京京东世纪贸易有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。