服务治理方法、装置及dubbo服务系统与流程

文档序号:16200365发布日期:2018-12-08 06:33阅读:227来源:国知局
服务治理方法、装置及dubbo服务系统与流程

本发明涉及互联网技术领域,尤其是涉及一种服务治理方法、装置及dubbo服务系统。

背景技术

随着互联网业务的发展,应用规模越来越大,常规的垂直应用架构已经无法应对大规模的服务需求,分布式服务架构以及流动计算架构势在必行。在这样的趋势下,应用之间、模块之间的交互不可避免。

目前应用之间、模块之间的服务调用通常是单独联系,缺乏统一的信息整合和调度管理,当服务越来越多时,服务资源浪费的现象也逐渐显现。



技术实现要素:

有鉴于此,本发明的目的在于提供一种服务治理方法、装置及dubbo服务系统,以提升服务资源的利用率。

第一方面,本发明实施例提供了一种服务治理方法,该方法应用于dubbo服务系统;dubbo服务系统包括服务消费端、服务提供端、服务注册中心以及服务监控中心;该方法包括:接收来自服务消费端的服务调用请求,并确定服务调用请求对应的目标服务;通过服务注册中心确定目标服务对应的可选服务提供端;其中,服务注册中心存储有服务与服务提供端的对应关系;将可选服务提供端的地址发送至服务消费端,以使服务消费端根据地址访问可选服务提供端,并从可选服务提供端中调用目标服务;通过服务监控中心对可选服务提供端被调用目标服务的过程进行实时监控,得到监控结果;其中,监控结果包括目标服务被调用成功的调用时长和调用次数;将监控结果发送至服务管理员,以使服务管理员根据监控结果对服务进行治理。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述通过服务注册中心确定目标服务对应的可选服务提供端的步骤,包括:通过服务注册中心,查找目标服务对应的服务提供端;判断查找到的服务提供端的工作状态是否正常;如果是,将查找到的服务提供端确定为可选服务提供端。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述服务注册中心预设有服务地址列表;其中,服务地址列表存储有目标服务对应的服务提供端的地址;通过服务注册中心,查找目标服务对应的服务提供端的步骤,包括:遍历服务地址列表,查找目标服务对应的服务提供端的地址;基于查找到的地址,定位目标服务对应的服务提供端的地址。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述服务注册中心通过预设第一端口与服务提供端通信连接;服务注册中心通过预设第二端口与服务消费端通信连接;上述方法还包括:通过预设第一端口和预设第二端口,建立服务消费端与服务提供端的远程通信,以使服务消费端实时获取服务提供端的服务变更信息。

结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,预设第一端口和预设第二端口均为http协议端口。

结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,上述服务注册中心包括zookeeper。

第二方面,本发明实施例提供了一种服务治理装置,该装置设置于dubbo服务系统;dubbo服务系统包括服务消费端、服务提供端、服务注册中心以及服务监控中心;该装置包括:服务请求接收模块,用于接收来自服务消费端的服务调用请求,并确定服务调用请求对应的目标服务;服务提供端确定模块,用于通过服务注册中心确定目标服务对应的可选服务提供端;其中,服务注册中心存储有服务与服务提供端的对应关系;服务调用模块,用于将可选服务提供端的地址发送至服务消费端,以使服务消费端根据地址访问可选服务提供端,并从可选服务提供端中调用目标服务;服务调用监控模块,用于通过服务监控中心对可选服务提供端被调用目标服务的过程进行实时监控,得到监控结果;其中,监控结果包括目标服务被调用成功的调用时长和调用次数;监控结果发送模块,用于将监控结果发送至服务管理员,以使服务管理员根据监控结果对服务进行治理。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,该服务提供端确定模块用于:通过服务注册中心,查找目标服务对应的服务提供端;判断查找到的服务提供端的工作状态是否正常;如果是,将查找到的服务提供端确定为可选服务提供端。

第三方面,本发明实施例提供了一种dubbo服务系统,包括存储器和处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面至第一方面的第五种可能的实施方式中任一项所述的方法的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面至第一方面的第五种可能的实施方式中任一项所述的方法的步骤。

本发明实施例带来了以下有益效果:

本发明实施例提供了一种服务治理方法、装置及dubbo服务系统,该方法包括:首先接收来自服务消费端的服务调用请求以确定服务调用请求对应的目标服务;然后通过服务注册中心确定目标服务对应的可选服务提供端;进而将可选服务提供端的地址发送至服务消费端,以使服务消费端根据地址访问可选服务提供端,并从可选服务提供端中调用目标服务;同时通过服务监控中心对可选服务提供端被调用目标服务的过程进行实时监控,得到监控结果;并且将监控结果发送至服务管理员,以使服务管理员根据监控结果对服务进行治理。本发明实施例提供的上述方式通过监管服务调用的过程,能够令管理员及时对服务资源分配做出调整,从而有效地提升了服务资源的利用率。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种服务治理方法的流程图;

图2为本发明实施例提供的一种基于zookeeper的服务框架的结构示意图;

图3为本发明实施例提供的一种服务治理装置的结构框图;

图4为本发明实施例提供的一种dubbo服务系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前应用之间、模块之间的服务调用通常是单独联系,缺乏统一的信息整合和调度管理,当服务越来越多时,服务资源浪费的现象也逐渐显现。基于此,本发明实施例提供的一种服务治理方法、装置以及dubbo服务系统,可以有效地提升服务资源的利用率。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种服务治理方法进行详细介绍。

参见图1所示的一种服务治理方法的流程图,该方法应用于dubbo服务系统;dubbo服务系统包括服务消费端、服务提供端、服务注册中心以及服务监控中心;dubbo服务系统基于dubbo服务框架而建立;其中,dubbo是一种能够实现远程调用服务的分布式服务框架,该方法包括如下步骤:

步骤s102,接收来自服务消费端的服务调用请求,并确定服务调用请求对应的目标服务;其中,服务调用请求携带有服务消费端所要调用的目标服务的标识符,诸如接口名;且该标识符可以被服务注册中心识别。

步骤s104,通过服务注册中心确定目标服务对应的可选服务提供端;其中,服务注册中心存储有服务与服务提供端的对应关系;目标服务可以由一个或多个服务提供端提供;一个服务提供端可以提供多种服务。基于dubbo服务框架,服务注册中心可以根据接口名查询服务提供端的地址,也可以平滑地添加或者删除服务提供端,无需将服务提供端的地址写死。

步骤s106,将可选服务提供端的地址发送至服务消费端,以使服务消费端根据地址访问可选服务提供端,并从可选服务提供端中调用目标服务;

步骤s108,通过服务监控中心对可选服务提供端被调用目标服务的过程进行实时监控,得到监控结果;其中,监控结果包括目标服务被调用成功的调用时长和调用次数;具体的,可采用dubbo服务框架中的monit模块对每个服务提供端的每个服务的调用次数和时间做采样,得到诸如每个服务被调用的次数,其中成功的次数,失败的次数,成功调用一次服务耗时等信息。

步骤s110,将监控结果发送至服务管理员,以使服务管理员根据监控结果对服务进行治理。将上述得到的监控结果发送至服务管理员,管理员即可据监控结果分析诸如每天服务在什么时候是峰谷;服务器(也即前述服务提供端)中哪个服务被调用次数多;什么时候需要做服务器扩容等,从而对服务进行相应的治理和优化。

本发明实施例提供的上述服务治理方法,首先接收来自服务消费端的服务调用请求以确定服务调用请求对应的目标服务;然后通过服务注册中心确定目标服务对应的可选服务提供端;进而将可选服务提供端的地址发送至服务消费端,以使服务消费端根据地址访问可选服务提供端,并从可选服务提供端中调用目标服务;同时通过服务监控中心对可选服务提供端被调用目标服务的过程进行实时监控,得到监控结果;并且将监控结果发送至服务管理员,以使服务管理员根据监控结果对服务进行治理。本发明实施例提供的上述方法应用于dubbo服务系统,通过监管服务调用的过程,有助于管理员及时对服务资源分配做出调整,从而有效地提升了服务资源的利用率。

进一步,为便于理解,上述步骤s104,也即通过服务注册中心确定目标服务对应的可选服务提供端的步骤,包括:通过服务注册中心,查找目标服务对应的服务提供端;判断查找到的服务提供端的工作状态是否正常;如果是,将查找到的服务提供端确定为可选服务提供端。通过服务注册中心间接查找与目标服务对应,且工作状态正常的服务提供端,再将其发送至服务消费端,能够避免目前因将目标服务与服务提供端的对应关系直接通过硬编码方式实现,而导致服务提供端工作异常时,服务消费端仍继续请求挂掉的服务提供端提供服务的现象。有效地提升了服务调用的效率。

进一步,也可在服务注册中心预设有服务地址列表;其中,服务地址列表存储有目标服务对应的服务提供端的地址;通过服务注册中心,查找目标服务对应的服务提供端的步骤,包括:遍历服务地址列表,查找目标服务对应的服务提供端的地址;基于查找到的地址,定位目标服务对应的服务提供端。

进一步,上述服务注册中心通过预设第一端口与服务提供端通信连接;服务注册中心还通过预设第二端口与服务消费端通信连接;上述方法还包括:通过预设第一端口和预设第二端口,建立服务消费端与服务提供端的远程通信,以使服务消费端实时获取服务提供端的服务变更信息。具体的,预设第一端口和预设第二端口均为http协议端口。以服务注册中心做为媒介通过端口联通服务消费端和服务提供端,实现远程通信,应用http协议对信息进行加密传递,有效地保证通信的安全。

进一步,上述服务注册中心包括zookeeper;采用zookeeper作为服务注册中心,可以实现负载均衡,具体的,可通过zookeeper集群配合相应的web应用实现负载均衡,这样的方式相较于单注册中心,在流量达到一定程度时,能够通过负载均衡进行分流,增强了服务注册中心的承载能力,从而保证服务调用的正常进行;同时,zookeeper还具备同步功能,也即能够使集群节点的数据和资源保持同步;zookeeper通过构建树状结构,维护预设的服务地址列表,服务提供端在启动的时候,向zookeeper上的指定节点目录,诸如在/dubbo/${servicename}/providers下写入自己的地址,即可完成服务的注册。此外,zookeeper还可以通过心跳机制检测挂掉的服务器,也即前述服务提供端,并将挂掉的服务器的地址和服务对应关系从服务地址列表中删除。

为便于实施,参见图2,本发明实施例还提供了一种基于zookeeper的服务框架的结构示意图,图2中示出了服务注册中心202、服务消费端204和服务提供端206之间的交互;其中,服务注册中心202可以采用zookeeper实现。具体的,包括:服务提供端在启动时,注册服务到服务注册中心;服务消费端在启动时,向服务注册中心订阅自己所需的服务;服务注册中心返回目标服务对应的服务提供端地址列表给服务消费端,如果该服务提供端的服务有变更,服务注册中心将服务变更消息传送给服务消费端;服务消费端将服务注册信息缓存在本地;服务消费端从可选的服务提供端的地址列表中,选其中一台服务提供端进行服务调用,如果调用失败,再选下一台进行调用。

为便于实施,本发明实施例还提供了一种服务消费端、服务注册中心和服务提供端的配置方式,具体的如下:搭建开发环境,包括安装jdk1.7、配置java环境变量、配置maven及安装redis;使用dubbo实现服务提供端与服务消费端分离;将服务提供端所包括的服务的接口全路径配置在dubbo服务提供端配置文件provider.xml中进行注册,并在provider.xml中配置好注册中心地址、端口号以及超时间隔,通过spring的容器文件applicationcontext.xml将服务提供端provider.xml加载使得服务提供端的接口暴露出去。注册在zookeeper注册中心,通过springapplicationcontext.xml文件载入,服务消费端在consumer.xml中配置需要消费的接口。

对应上述方法,本发明实施例提供了一种服务治理装置,该装置设置于dubbo服务系统;dubbo服务系统包括服务消费端、服务提供端、服务注册中心以及服务监控中心;该装置包括:

服务请求接收模块302,用于接收来自服务消费端的服务调用请求,并确定服务调用请求对应的目标服务;

服务提供端确定模块304,用于通过服务注册中心确定目标服务对应的可选服务提供端;其中,服务注册中心存储有服务与服务提供端的对应关系;

服务调用模块306,用于将可选服务提供端的地址发送至服务消费端,以使服务消费端根据地址访问可选服务提供端,并从可选服务提供端中调用目标服务;

服务调用监控模块308,用于通过服务监控中心对可选服务提供端被调用目标服务的过程进行实时监控,得到监控结果;其中,监控结果包括目标服务被调用成功的调用时长和调用次数;

监控结果发送模块310,用于将监控结果发送至服务管理员,以使服务管理员根据监控结果对服务进行治理。

本发明实施例提供的上述服务治理装置,通过接收来自服务消费端的服务调用请求,并确定服务调用请求对应的目标服务;然后通过服务注册中心确定目标服务对应的可选服务提供端;进而将可选服务提供端的地址发送至服务消费端,以使服务消费端根据地址访问可选服务提供端,并从可选服务提供端中调用目标服务;同时通过服务监控中心对可选服务提供端被调用目标服务的过程进行实时监控,得到监控结果;并且将监控结果发送至服务管理员,以使服务管理员根据监控结果对服务进行治理。本发明实施例提供的服务治理装置设置于dubbo服务系统,通过监管服务调用的过程,有助于管理员及时对服务资源分配做出调整,从而有效地提升了服务资源的利用率。

具体的,上述服务提供端确定模块304用于:通过服务注册中心,查找目标服务对应的服务提供端;判断查找到的服务提供端的工作状态是否正常;如果是,将查找到的服务提供端确定为可选服务提供端。

本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

进一步,对应上述方法和装置,本发明实施例还提供了一种dubbo服务系统,包括存储器和处理器,存储器中存储有可在所处理器上运行的计算机程序,处理器执行计算机程序时实现上述服务治理方法的步骤。

参见图4所示的一种dubbo服务系统的结构示意图,示出了dubbo服务系统400,包括:处理器40,存储器41,总线42和通信接口43,处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存41中存储的可执行模块,例如计算机程序。

其中,存储器41可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

总线42可以是isa总线、pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器41用于存储程序401,处理器40在接收到执行指令后,执行程序401,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。

处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。

进一步,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一项服务治理方法的步骤。具体实现可参见方法实施例,在此不再赘述。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1