CN108111496B - 为dubbo分布式应用暴露http服务的方法、装置及系统 - Google Patents
为dubbo分布式应用暴露http服务的方法、装置及系统 Download PDFInfo
- Publication number
- CN108111496B CN108111496B CN201711334518.9A CN201711334518A CN108111496B CN 108111496 B CN108111496 B CN 108111496B CN 201711334518 A CN201711334518 A CN 201711334518A CN 108111496 B CN108111496 B CN 108111496B
- Authority
- CN
- China
- Prior art keywords
- application
- service
- sop
- client
- dubbo
- 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.)
- Active
Links
Images
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/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
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/133—Protocols for remote procedure calls [RPC]
Abstract
本发明提供了一种为dubbo分布式应用暴露http服务的方法、装置及系统,涉及计算机的技术领域,该方法包括:获取终端发送的http请求,其中,http请求为请求调用目标服务方法的请求,目标服务方法为目标系统应用所对应的方法,目标系统应用为预先在zookeeper中注册的多个系统应用中的应用;将http请求解析为预设请求模板,并在dubbo应用系统中查找与目标服务方法相对应的客户端;通过预设请求模板向终端返回目标服务方法,本发明缓解了现有技术中存在的web应用在对外暴露其dubbo服务时,操作较为繁琐的技术问题。
Description
技术领域
本发明涉及计算机的技术领域,尤其是涉及一种为dubbo分布式应用暴露http服务的方法、装置及系统。
背景技术
目前随着互联网的发展,网站应用的规模不断扩大,基于dubbo构建的分布式应用也顺势而生,但这样的web应用只能对外暴露自身的dubbo服务,调用者请求服务只能通过dubbo的服务发现来远程调度,通常为了实现支持http服务调用,会重新为服务模块编写一套完整的支持http调用的服务,这不仅加大了人力成本,同时给系统维护问题带来挑战。
现有技术中,一个由dubbo构建的应用系统,其暴露的服务仅能通过dubbo协议暴露给其他客户端调用,为了支持http方式调用,不得不重新编写控制层对外支持http方式调用,这些额外的工作严重影响开发进度,降低了系统的可维护性。
发明内容
有鉴于此,本发明的目的在于提供一种为dubbo分布式应用暴露http服务的方法、装置及系统,以缓解了现有技术中存在的web应用在对外暴露其dubbo服务时,操作较为繁琐的技术问题。
第一方面,本发明实施例提供了一种为dubbo分布式应用暴露http服务的方法,应用于调用系统SOP,包括:获取终端发送的http请求,其中,所述http请求为请求调用目标服务方法的请求,所述目标服务方法为目标系统应用所对应的方法,所述目标系统应用为预先在zookeeper中注册的多个系统应用中的应用;将所述http请求解析为预设请求模板,并在dubbo应用系统中查找与所述目标服务方法相对应的客户端;通过所述预设请求模板向所述终端返回所述目标服务方法。
进一步地,查找与所述目标服务方法相对应的客户端包括:在dubbo应用系统中调用各个系统应用的客户端,并在所述各个系统应用的客户端中查找与所述目标服务方法相对应的客户端。
进一步地,所述方法还包括:在每个系统应用启动之前,为每个系统应用创建类继承Client类,其中,所述类继承Client类的名称与系统应用的名称相对应;基于所述类继承Client类将每个系统应用的服务方法暴露在所述dubbo应用系统中;在zookeeper中创建调用服务的SOP服务节点,并在每个系统应用中添加所述zookeeper的地址信息。
进一步地,基于所述类继承Client类将每个系统应用的服务方法暴露在所述dubbo应用系统中包括:为每个系统应用的类继承Client类添加ServiceMethodBean注解;为每个系统应用的服务方法添加ServiceMethod注解;其中,在将所述类继承Client类添加ServiceMethodBean注解,以及将所述服务方法添加ServiceMethod注解之后,能够将所述系统应用的服务方法暴露在所述dubbo应用系统中。
进一步地,所述方法还包括:所述调用系统SOP在预先设置在zookeeper中的SOP服务节点中发现每个系统应用所对应的服务方法,其中,所述每个系统应用预先将其对应的服务方法注册至所述zookeeper中,以供所述调用系统SOP进行发现。
进一步地,所述方法还包括:预先为每个系统应用创建对应的临时节点,其中,所述临时节点的父节点为所述zookeeper中的SOP服务节点;建立所述临时节点与所述SOP服务节点的心跳连接,以使所述调用系统SOP在所述SOP服务节点中发现每个系统应用所对应的服务方法。
进一步地,所述方法还包括:通过监听所述zookeeper中的SOP服务节点,来检测所述多个系统应用中服务方法是否发生了变更。
第二方面,本发明实施例还提供了一种为dubbo分布式应用暴露http服务的装置,设置于调用系统SOP上,包括:获取单元,用于获取终端发送的http请求,其中,所述http请求为请求调用目标服务方法的请求,所述目标服务方法为目标系统应用所对应的方法,所述目标系统应用为预先在zookeeper中注册的多个系统应用中的应用;解析单元,用于将所述http请求解析为预设请求模板,并在dubbo应用系统中查找与所述目标服务方法相对应的客户端;返回单元,用于通过所述预设请求模板向所述终端返回所述目标服务方法。
进一步地,解析查找单元用于:在dubbo应用系统中调用各个系统应用的客户端,并在所述各个系统应用的客户端中查找与所述目标服务方法相对应的客户端。
第三方面,本发明实施例还提供了一种为dubbo分布式应用暴露http服务的系统,包括:调用系统SOP,zookeeper和dubbo应用系统;所述调用系统SOP用于执行以下步骤:获取终端发送的http请求,其中,所述http请求为请求调用目标服务方法的请求,所述目标服务方法为目标系统应用所对应的方法,所述目标系统应用为预先在zookeeper中注册的多个系统应用中的应用;将所述http请求解析为预设请求模板,并在所述dubbo应用系统查找与所述目标服务方法相对应的客户端;通过所述预设请求模板向所述终端返回所述目标服务方法;所述zookeeper预先设置有SOP服务节点,所述SOP服务节点用于所述调用系统SOP发现每个系统应用所对应的服务方法。
在本发明实施例中,设置了一种调用系统SOP,无需重新编写支持http服务的业务代码,通过该调用系统为终端返回对应的dubbo服务。进而缓解了现有技术中存在的web应用在对外暴露其dubbo服务时,操作较为繁琐的技术问题,从而实现了减少控制层代码编写工作量,降低维护成本的技术效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的为dubbo分布式应用暴露http服务的方法的流程图;
图2是根据本发明实施例的为dubbo分布式应用暴露http服务的系统的示意图;
图3是根据本发明实施例的一种为dubbo分布式应用暴露http服务的装置的示意图;
图4是根据本发明实施例的另一种为dubbo分布式应用暴露http服务的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
根据本发明实施例,提供了一种为dubbo分布式应用暴露http服务的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的为dubbo分布式应用暴露http服务的方法的流程图,应用于调用系统SOP,如图1所示,该方法包括如下步骤:
步骤S102,获取终端发送的http请求,其中,所述http请求为请求调用目标服务方法的请求,所述目标服务方法为目标系统应用所对应的方法,所述目标系统应用为预先在zookeeper中注册的多个系统应用中的应用;
步骤S104,将所述http请求解析为预设请求模板,并在dubbo应用系统中查找与所述目标服务方法相对应的客户端;
步骤S106,通过所述预设请求模板向所述终端返回所述目标服务方法。
调用系统SOP(Service Open Platform),是一种服务开放平台。在软件行业和网络中,开放平台是指软件系统通过公开其应用程序编程接口(API)或函数(function)来使外部的程序可以增加该软件系统的功能或使用该软件系统的资源,而不需要更改该软件系统的源代码。在本发明实施例中,调用系统SOP主要用于发现系统应用,以发现每个系统应用所对应的服务方法。
需要说明的是,在本发明实施例中,所指的系统应用均是指web应用中的子系统,例如,报表系统等等。对此,在本发明实施例中,不再一一列举。
在本发明实施例中,设置了一种调用系统SOP,无需重新编写支持http服务的业务代码,通过该调用系统为终端返回对应的dubbo服务。进而缓解了现有技术中存在的web应用在对外暴露其dubbo服务时,操作较为繁琐的技术问题,从而实现了减少控制层代码编写工作量,降低维护成本的技术效果。
进一步需要说明的是,在本发明实施例中,需要在web应用的各个系统应用之外构建调用系统SOP,该调用系统SOP可以是单机,可以是集群,且该调用系统采用springMVC的核心思想,有以下特征:
第一、面向于处理http请求;
第二、消费所有系统应用向dubbo应用系统注册中心注册的客户端client;
第三、调用系统SOP监听zookeeper节点/sop-service,监听现有的可用服务的更新变化。当一个http请求到达时,SOP系统将http请求解析为预定义的request模板(即,上述预设请求模板),然后,获取到request请求的服务方法所对应的客户端client,客户端client收到请求后,通过request模板(即,上述预设请求模板)查找对应的服务方法进行调用返回,并最终由调用系统SOP响应该http请求。
在一个可选的实施方式中,查找与所述目标服务方法相对应的客户端包括如下步骤:
在dubbo应用系统中调用各个系统应用的客户端,并在所述各个系统应用的客户端中查找与所述目标服务方法相对应的客户端。
具体地,在本发明实施例中,可以通过调用系统SOP在dubbo应用系统中调用各个系统应用的客户端。并在各个系统应用的客户端中查找与目标服务方法对应的客户端。
需要说明的是,在本发明实施例中,一个系统应用对应一个客户端client,各个系统应用通过个字的客户端向dubbo应用系统暴露各自的服务方法。当调用系统SOP获取到http请求之后,就可以在dubbo应用系统中调用各个系统应用的客户端,从而确定与该http请求相对应的客户端client,在查找到相对应的客户端client之后,客户端client就能够通过预设请求模板将对应的服务方法(即,目标服务方法)返回,以使调用系统SOP向终端返回该目标服务方法。
在另一个可选的实施方式中,在调用系统SOP获取到http请求之前,所述调用系统SOP还可以在预先设置在zookeeper中的SOP服务节点中发现每个系统应用所对应的服务方法,其中,所述每个系统应用预先将其对应的服务方法注册至所述zookeeper中,以供所述调用系统SOP进行发现。
在本发明实施例中,预先为每个系统应用创建对应的临时节点,其中,所述临时节点的父节点为所述zookeeper中的SOP服务节点;建立所述临时节点与所述SOP服务节点的心跳连接,以使所述调用系统SOP在所述SOP服务节点中发现每个系统应用所对应的服务方法。
在本发明实施例中,通过上述描述可知,如图2所示,首先为每个系统应用创建了对应的临时节点,即为如图2所示的,系统1,系统2和系统3。然后,建立系统1,系统2和系统3与zookeeper中的SOP服务节点之间的心跳连接。当心跳连接存在时,调用系统SOP就能够在SOP服务节点中发现对应的系统应用所对应的服务方法。当心跳连接不存在时,调用系统SOP就无法在SOP服务节点中发现对应的系统应用所对应的服务方法,此时,会自动清除对应的心跳连接不存在的系统应用所对应的临时节点,其中,SOP服务节点为预先建立在zookeeper中的节点。
需要说明的是,web应用中的各个系统应用的所有服务方法创建在zookeeper中一个节点下的临时节点,zookeeper与这些临时节点保持心跳,当临时节点所提供服务方法超时,或者,断线等原因造成服务不可用,自动清除对应的临时节点。
在另一个可选的实施方式中,该方法还包括:通过监听所述zookeeper中的SOP服务节点,来检测所述多个系统应用中服务方法是否发生了变更。
在本发明实施例中,调用系统SOP能够监听各子系统应用注册的临时节点的父节点(也即,SOP服务节点),当服务方法变更时,调用系统SOP进行本地检查,并响应该变更。
通过上述描述可知,在本发明实施例中,无需编写程序,仅仅通过原有系统重新对各个系统应用所提供的服务方法进行注册即可。在本发明实施例所提供的方法,缓解了现有技术中存在的web应用在对外暴露其dubbo服务时,操作较为繁琐的技术问题,从而实现了减少了控制层代码编写工作量,且降低了维护成本的技术效果。
在另一个可选的实施方式中,该还包括如下步骤:
在每个系统应用启动之前,为每个系统应用创建类继承Client类,其中,所述类继承Client类的名称与系统应用的名称相对应;
基于所述类继承Client类将每个系统应用的服务方法暴露在所述dubbo应用系统中;
在zookeeper中创建调用服务的SOP服务节点,并在每个系统应用中添加所述zookeeper的地址信息。
具体地,在本发明实施例中,可以先为web应用中所有系统应用新建一个类继承Client类,且最好该类的类名与系统应用相对应,例如ReportClient代表报表系统;接下来,在dubbo应用系统中通过这个类暴露服务。
在将服务方法暴露在dubbo应用系统中时,可以为每个系统应用的类继承Client类添加ServiceMethodBean注解;然后,为每个系统应用的服务方法添加ServiceMethod注解;其中,在将所述类继承Client类添加ServiceMethodBean注解,以及将所述服务方法添加ServiceMethod注解之后,能够将所述系统应用的服务方法暴露在所述dubbo应用系统中。
在为类继承Client类添加ServiceMethodBean注解,以及为服务方法添加ServiceMethod注解之后,还可以在zookeeper中创建一个永久节点/sop-service(也即,上述SOP服务节点);并在各个系统应用中properties配置zk=zookeeper_host:port。在调用系统SOP中的dubbo配置文件内,消费所有系统应用暴露的客户端client,并加入properties配置zk=zookeeper_host:port,以实现服务方法的发现。
此时,就可以启动所有系统应用,此时,可以在控制台查看到日志:共发布xxx个服务方法,接下来启动调用系统SOP,查看到控制台日志:共订阅xxx个服务方法,其中,订阅的服务方法数量应等于所有发布的服务方法之和。至此可以通过调用系统SOP以http的方式调用后台的dubbo服务方法。
在本发明实施例中,设置了一种调用系统SOP,无需重新编写支持http服务的业务代码,通过该调用系统为终端返回对应的dubbo服务。进而缓解了现有技术中存在的web应用在对外暴露其dubbo服务时,操作较为繁琐的技术问题,从而实现了减少控制层代码编写工作量,降低维护成本的技术效果。
图2是根据本发明实施例的为dubbo分布式应用暴露http服务的系统的示意图,包括:调用系统SOP 100,zookeeper 200和dubbo应用系统300。
所述调用系统SOP用于执行以下步骤:获取终端发送的http请求,其中,所述http请求为请求调用目标服务方法的请求,所述目标服务方法为目标系统应用所对应的方法,所述目标系统应用为预先在zookeeper中注册的多个系统应用中的应用;将所述http请求解析为预设请求模板,并在所述dubbo应用系统查找与所述目标服务方法相对应的客户端;通过所述预设请求模板向所述终端返回所述目标服务方法;
所述zookeeper预先设置有SOP服务节点,所述SOP服务节点用于所述调用系统SOP发现每个系统应用所对应的服务方法。
如图2所示,在本发明实施例中,基于服务开放平台的思想,对dubbo应用系统构建的分布式应用(例如,web应用)的各个服务方法去逐一配置注册。然后,采用按系统应用区分,暴露各自的客户端client,客户端client包含的request模板需预先定义,其他系统调用服务时要求传递预定义的request模板来调用。各子系统应用启动时需要将自身的所有服务方法注册到zookeeper,并且与zookeeper保持心跳,用于SOP(Service OpenPlatform)调用系统的服务发现。服务的信息统一注册到节点/sop-service下,节点类型是临时节点。
当一个http请求到达时,当调用系统SOP获取到http请求之后,就可以在dubbo应用系统中调用各个系统应用的客户端,从而确定与该http请求相对应的客户端client,在查找到相对应的客户端client之后,客户端clien就能够通过预设请求模板将对应的服务方法(即,目标服务方法)返回,以使调用系统SOP向终端返回该目标服务方法。
实施例二:
本发明实施例还提供了一种为dubbo分布式应用暴露http服务的装置,该为dubbo分布式应用暴露http服务的装置主要用于执行本发明实施例上述内容所提供的为dubbo分布式应用暴露http服务的方法,以下对本发明实施例提供的为dubbo分布式应用暴露http服务的装置做具体介绍。
图3是根据本发明实施例的一种为dubbo分布式应用暴露http服务的装置的示意图,如图3所示,该为dubbo分布式应用暴露http服务的装置主要包括获取单元10,解析查找单元20和返回单元30,其中:
获取单元10,用于获取终端发送的http请求,其中,所述http请求为请求调用目标服务方法的请求,所述目标服务方法为目标系统应用所对应的方法,所述目标系统应用为预先在zookeeper中注册的多个系统应用中的应用;
解析查找单元20,用于将所述http请求解析为预设请求模板,并在dubbo应用系统中查找与所述目标服务方法相对应的客户端;
返回单元30,用于通过所述预设请求模板向所述终端返回所述目标服务方法。
在本发明实施例中,设置了一种调用系统SOP,无需重新编写支持http服务的业务代码,通过该调用系统为终端返回对应的dubbo服务。进而缓解了现有技术中存在的web应用在对外暴露其dubbo服务时,操作较为繁琐的技术问题,从而实现了减少控制层代码编写工作量,降低维护成本的技术效果。
可选地,解析查找单元20用于:在dubbo应用系统中调用各个系统应用的客户端,并在所述各个系统应用的客户端中查找与所述目标服务方法相对应的客户端。
可选地,如图4所示,该装置还包括:创建单元41,用于在每个系统应用启动之前,为每个系统应用创建类继承Client类,其中,所述类继承Client类的名称与系统应用的名称相对应;暴露单元42,用于基于所述类继承Client类将每个系统应用的服务方法暴露在所述dubbo应用系统中;调用单元43,用于在zookeeper中创建调用服务的SOP服务节点,并在每个系统应用中添加所述zookeeper的地址信息。
可选地,暴露单元用于:为每个系统应用的类继承Client类添加ServiceMethodBean注解;为每个系统应用的服务方法添加ServiceMethod注解;其中,在将所述类继承Client类添加ServiceMethodBean注解,以及将所述服务方法添加ServiceMethod注解之后,能够将所述系统应用的服务方法暴露在所述dubbo应用系统中。
可选地,该装置还用于:所述调用系统SOP在预先设置在zookeeper中的SOP服务节点中发现每个系统应用所对应的服务方法,其中,所述每个系统应用预先将其对应的服务方法注册至所述zookeeper中,以供所述调用系统SOP进行发现。
可选地,该装置还用于:预先为每个系统应用创建对应的临时节点,其中,所述临时节点的父节点为所述zookeeper中的SOP服务节点;建立所述临时节点与所述SOP服务节点的心跳连接,以使所述调用系统SOP在所述SOP服务节点中发现每个系统应用所对应的服务方法。
可选地,该装置还用于:通过监听所述zookeeper中的SOP服务节点,来检测所述多个系统应用中服务方法是否发生了变更。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例提供的为dubbo分布式应用暴露http服务的装置,与上述实施例提供的为dubbo分布式应用暴露http服务的方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明实施例所提供的为dubbo分布式应用暴露http服务的方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种为dubbo分布式应用暴露http服务的方法,其特征在于,应用于调用系统SOP,包括:
获取终端发送的http请求,其中,所述http请求为请求调用目标服务方法的请求,所述目标服务方法为目标系统应用所对应的方法,所述目标系统应用为预先在zookeeper中注册的多个系统应用中的应用;
将所述http请求解析为预设请求模板,并在dubbo应用系统中查找与所述目标服务方法相对应的客户端;
通过所述预设请求模板向所述终端返回所述目标服务方法;
所述方法还包括:
在每个系统应用启动之前,为每个系统应用创建类继承Client类,其中,所述类继承Client类的名称与系统应用的名称相对应;
基于所述类继承Client类将每个系统应用的服务方法暴露在所述dubbo应用系统中;
在zookeeper中创建调用服务的SOP服务节点,并在每个系统应用中添加所述zookeeper的地址信息。
2.根据权利要求1所述的方法,其特征在于,查找与所述目标服务方法相对应的客户端包括:
在dubbo应用系统中调用各个系统应用的客户端,并在所述各个系统应用的客户端中查找与所述目标服务方法相对应的客户端。
3.根据权利要求2所述的方法,其特征在于,基于所述类继承Client类将每个系统应用的服务方法暴露在所述dubbo应用系统中包括:
为每个系统应用的类继承Client类添加ServiceMethodBean注解;
为每个系统应用的服务方法添加ServiceMethod注解;
其中,在将所述类继承Client类添加ServiceMethodBean注解,以及将所述服务方法添加ServiceMethod注解之后,能够将所述系统应用的服务方法暴露在所述dubbo应用系统中。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述调用系统SOP在预先设置在zookeeper中的SOP服务节点中发现每个系统应用所对应的服务方法,其中,所述每个系统应用预先将其对应的服务方法注册至所述zookeeper中,以供所述调用系统SOP进行发现。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
预先为每个系统应用创建对应的临时节点,其中,所述临时节点的父节点为所述zookeeper中的SOP服务节点;
建立所述临时节点与所述SOP服务节点的心跳连接,以使所述调用系统SOP在所述SOP服务节点中发现每个系统应用所对应的服务方法。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
通过监听所述zookeeper中的SOP服务节点,来检测所述多个系统应用中服务方法是否发生了变更。
7.一种为dubbo分布式应用暴露http服务的装置,其特征在于,设置于调用系统SOP上,包括:
获取单元,用于获取终端发送的http请求,其中,所述http请求为请求调用目标服务方法的请求,所述目标服务方法为目标系统应用所对应的方法,所述目标系统应用为预先在zookeeper中注册的多个系统应用中的应用;
解析查找单元,用于将所述http请求解析为预设请求模板,并在dubbo应用系统中查找与所述目标服务方法相对应的客户端;
返回单元,用于通过所述预设请求模板向所述终端返回所述目标服务方法;
创建单元,用于在每个系统应用启动之前,为每个系统应用创建类继承Client类,其中,所述类继承Client类的名称与系统应用的名称相对应;
暴露单元,用于基于所述类继承Client类将每个系统应用的服务方法暴露在所述dubbo应用系统中;
调用单元,用于在zookeeper中创建调用服务的SOP服务节点,并在每个系统应用中添加所述zookeeper的地址信息。
8.根据权利要求7所述的装置,其特征在于,解析查找单元用于:
在dubbo应用系统中调用各个系统应用的客户端,并在所述各个系统应用的客户端中查找与所述目标服务方法相对应的客户端。
9.一种为dubbo分布式应用暴露http服务的系统,其特征在于,包括:调用系统SOP,zookeeper和dubbo应用系统;
所述调用系统SOP用于执行以下步骤:获取终端发送的http请求,其中,所述http请求为请求调用目标服务方法的请求,所述目标服务方法为目标系统应用所对应的方法,所述目标系统应用为预先在zookeeper中注册的多个系统应用中的应用;将所述http请求解析为预设请求模板,并在所述dubbo应用系统查找与所述目标服务方法相对应的客户端;通过所述预设请求模板向所述终端返回所述目标服务方法;
所述zookeeper预先设置有SOP服务节点,所述SOP服务节点用于所述调用系统SOP发现每个系统应用所对应的服务方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711334518.9A CN108111496B (zh) | 2017-12-13 | 2017-12-13 | 为dubbo分布式应用暴露http服务的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711334518.9A CN108111496B (zh) | 2017-12-13 | 2017-12-13 | 为dubbo分布式应用暴露http服务的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108111496A CN108111496A (zh) | 2018-06-01 |
CN108111496B true CN108111496B (zh) | 2020-11-20 |
Family
ID=62215922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711334518.9A Active CN108111496B (zh) | 2017-12-13 | 2017-12-13 | 为dubbo分布式应用暴露http服务的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108111496B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965461A (zh) * | 2018-08-03 | 2018-12-07 | 华数传媒网络有限公司 | 服务治理方法、装置及dubbo服务系统 |
CN109861998B (zh) * | 2019-01-21 | 2021-06-11 | 成都新橙北斗智联有限公司 | 一种基于北斗短报文协议的插件式动态解析系统及方法 |
CN111988398A (zh) * | 2020-08-19 | 2020-11-24 | 政采云有限公司 | 一种数据获取方法、api网关、介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536809A (zh) * | 2014-11-26 | 2015-04-22 | 上海瀚之友信息技术服务有限公司 | 一种基于客户端、服务器系统的分布式定时任务调度系统 |
CN104731893A (zh) * | 2015-03-17 | 2015-06-24 | 北京京东尚科信息技术有限公司 | 一种基于dubbo的web服务查找方法、装置和系统 |
CN105450757A (zh) * | 2015-12-02 | 2016-03-30 | 联动优势电子商务有限公司 | 一种服务管理方法及系统 |
WO2017148512A1 (en) * | 2016-03-02 | 2017-09-08 | Nokia Solutions And Networks Oy | Data center managed connectivity |
CN107181806A (zh) * | 2017-05-27 | 2017-09-19 | 北京思特奇信息技术股份有限公司 | 一种基于dubbo的分布式业务处理系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9485300B2 (en) * | 2012-03-13 | 2016-11-01 | Yahoo! Inc. | Publish-subscribe platform for cloud file distribution |
-
2017
- 2017-12-13 CN CN201711334518.9A patent/CN108111496B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536809A (zh) * | 2014-11-26 | 2015-04-22 | 上海瀚之友信息技术服务有限公司 | 一种基于客户端、服务器系统的分布式定时任务调度系统 |
CN104731893A (zh) * | 2015-03-17 | 2015-06-24 | 北京京东尚科信息技术有限公司 | 一种基于dubbo的web服务查找方法、装置和系统 |
CN105450757A (zh) * | 2015-12-02 | 2016-03-30 | 联动优势电子商务有限公司 | 一种服务管理方法及系统 |
WO2017148512A1 (en) * | 2016-03-02 | 2017-09-08 | Nokia Solutions And Networks Oy | Data center managed connectivity |
CN107181806A (zh) * | 2017-05-27 | 2017-09-19 | 北京思特奇信息技术股份有限公司 | 一种基于dubbo的分布式业务处理系统及方法 |
Non-Patent Citations (3)
Title |
---|
SSM(十三) 将dubbo暴露出HTTP服务;crossoverJie;《https://blog.csdn.net/qq_18661793/》;20170503;第1-6页 * |
基于DUBBO + ZOOKEEPER计量服务平台研究;冉勇,曹东升,杨婧孜,马宁,赵华一;《计量与测试技术》;20170130;第41-42页 * |
基于Dubbox的分布式服务架构设计与实现;谢璐俊,杨鹤彪;《软件导航》;20160531;第13-15页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108111496A (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547570B (zh) | 服务注册方法、装置、注册中心管理设备及存储介质 | |
EP3462706B1 (en) | Information processing method, apparatus, and system for monitoring microservices | |
US10257115B2 (en) | Cloud-based service resource provisioning based on network characteristics | |
CN102682242B (zh) | 用于管理虚拟机系统的方法以及虚拟机系统 | |
CN107809383B (zh) | 一种基于mvc的路径映射方法及装置 | |
WO2017107018A1 (zh) | 应用拓扑关系发现的方法、装置和系统 | |
US11646939B2 (en) | Network function NF management method and NF management device | |
CN107800565B (zh) | 巡检方法、装置、系统、计算机设备和存储介质 | |
CN110275775B (zh) | 容器应用的资源配置方法、系统及存储介质 | |
CN108111496B (zh) | 为dubbo分布式应用暴露http服务的方法、装置及系统 | |
CN112506755B (zh) | 日志采集方法、装置、计算机设备和存储介质 | |
CN111756674A (zh) | 网络通信方法、系统、设备及计算机可读存储介质 | |
CN111258627A (zh) | 一种接口文档生成方法和装置 | |
CN110968356A (zh) | 配置信息获取的方法和装置 | |
WO2020088170A1 (zh) | 域名系统配置方法及相关装置 | |
WO2016197737A1 (zh) | 自检处理方法、装置及系统 | |
CN110737891A (zh) | 一种主机入侵检测方法和装置 | |
WO2019062634A1 (zh) | 通信方法及装置 | |
CN111510330B (zh) | 接口管理装置、方法及存储介质 | |
CN113835836A (zh) | 动态发布容器服务的系统、方法、计算机设备及介质 | |
CN113867892A (zh) | 一种弹性伸缩方法、系统、设备及存储介质 | |
US11071151B2 (en) | Methods and apparatuses for connecting a wireless access point through an application in a user equipment | |
CN109324914B (zh) | 服务调用方法、服务调用装置及中心服务器 | |
CN111444074A (zh) | 一种数据监控方法、装置、电子设备及可读存储介质 | |
CN107404410B (zh) | 一种云环境下构建虚拟网络功能平台的方法及装置 |
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 | ||
CB02 | Change of applicant information |
Address after: 310000 No. 188 Lianhui Street, Xixing Street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Hangzhou Anheng Information Technology Co.,Ltd. Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310000 No. 68 in the 15 storey building Applicant before: DBAPPSECURITY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |