一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于分布式网络的服务代码处理方法、装置、设备及介质与流程

2022-12-23 20:39:19 来源:中国专利 TAG:


1.本技术属于软件开发技术领域,具体涉及一种基于分布式网络的服务代码处理方法、装置、设备及介质。


背景技术:

2.代码开发平台通常是部署在一个服务器中,随着代码开发平台的访问量增大,问题也逐渐突显出来。由于传统的代码开发平台往往依赖同一服务器内部署的paas(平台即服务)或saas(软件服务化)提供的能力,导致代码开发平台可扩展性差。当用户终端请求突增时,受限于单一服务器的规模,难以快速扩容。用户终端访问平台时受部署的服务器的位置、运营商等影响,访问速度慢、用户体验差。


技术实现要素:

3.本技术提出一种基于分布式网络的服务代码处理方法、装置、设备及介质,将服务代码的开发及运行功能部署在分布式节点中,快速响应开发请求或服务代码的访问请求,缩短用户等待时长,提高开发效率和访问效率。只需通过分布式节点编辑服务代码的编辑信息即可,简化了开发过程。能依据请求量安排合理的计算资源满足业务需求。
4.本技术第一方面实施例提出了一种基于分布式网络的服务代码处理方法,应用于分布式网络中的分布式节点,包括:
5.根据接收到的针对服务代码的开发请求,接收并存储新开发的服务代码的编辑信息;
6.将所述新开发的服务代码的编辑信息发送至所述分布式网络中除当前节点以外的其他节点进行存储;
7.若接收到针对统一资源定位符的访问请求,获取与所述统一资源定位符对应的目标服务代码的编辑信息,并运行所述目标服务代码。
8.本技术第二方面的实施例提供了一种基于分布式网络的服务代码处理装置,配置于分布式网络中的分布式节点中,所述装置包括:
9.代码设计组件,用于根据接收到的针对服务代码的开发请求,接收并存储新开发的服务代码的编辑信息;
10.代码部署组件,用于将所述新开发的服务代码的编辑信息发送至所述分布式网络中除当前节点以外的其他节点进行存储;
11.代码运行组件,用于若接收到针对统一资源定位符的访问请求,获取与所述统一资源定位符对应的目标服务代码的编辑信息,并运行所述目标服务代码。
12.本技术第三方面的实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现上述第一方面所述的方法。
13.本技术第四方面的实施例提供了一种计算机可读存储介质,其上存储有计算机程
序,所述程序被处理器执行实现上述第一方面所述的方法。
14.本技术实施例中提供的技术方案,至少具有如下技术效果或优点:
15.在本技术实施例中,在分布式网络的分布式节点中提供服务代码的开发功能,并将新开发的服务代码部署在分布式网络的多个分布式节点中。分布式节点接收到针对目标服务代码的访问请求时运行该目标服务代码。如此将服务代码的开发及运行功能部署在分布式节点中,通过分布式节点能够快速响应用户的开发请求或目标服务代码的访问请求,缩短了用户等待时长,提高了服务代码的开发效率和访问效率。且用户需要开发服务代码时无需关注服务器配置或运维等方面,只需通过分布式节点提供的开发功能编辑服务代码的编辑信息即可,简化了服务代码的开发过程。同时,当用户需要执行服务代码时,可以在就近的分布式节点进行,而无需到固定节点进行访问,提高了访问效率。且可以很方便地依据请求量来分配提供开发服务的分布式节点的数目,安排合理的计算资源满足业务需求,避免出现计算资源不足或浪费计算资源的情况。
16.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变的明显,或通过本技术的实践了解到。
附图说明
17.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。
18.在附图中:
19.图1示出了本技术一实施例所提供的一种基于分布式网络的服务代码处理方法的流程图;
20.图2示出了本技术一实施例所提供的开发编辑界面的示意图;
21.图3示出了本技术一实施例所提供的一种基于分布式网络的服务代码处理装置的结构示意图;
22.图4示出了本技术一实施例所提供的一种电子设备的结构示意图;
23.图5示出了本技术一实施例所提供的一种存储介质的示意图。
具体实施方式
24.下面将参照附图更详细地描述本技术的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
25.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
26.下面结合附图来描述根据本技术实施例提出的一种基于分布式网络的服务代码处理方法及装置。
27.本技术实施例提供了一种基于分布式网络的服务代码处理方法,该方法在分布式网络的分布式节点中提供服务代码的开发功能,用户可以请求分布式节点进行服务代码开
发,并将新开发的服务代码的编辑信息部署在分布式网络的多个分布式节点中。分布式节点接收到针对目标服务代码对应的统一资源定位符的访问请求时,依据目标服务代码的编辑信息运行该目标服务代码。如此将服务代码的开发及运行功能部署在分布式节点中,通过分布式节点能够快速响应用户的开发请求或目标服务代码的访问请求,缩短了用户等待时长,提高了服务代码的开发效率和访问效率。且用户需要开发服务代码时无需关注服务器配置或运维等方面,只需要通过分布式节点提供的开发功能编辑服务代码的编辑信息即可,简化了服务代码的开发过程。且通过分布式网络的分布式节点进行服务代码开发,可以很方便地依据请求量来分配提供开发服务的分布式节点的数目,安排合理计算资源满足业务需求,避免出现计算资源不足或浪费计算资源的情况。
28.需要说明的是,分布式网络可以为cdn(content delivery network,内容分发网络)网络,该cdn网络中可以包括多个分布式节点。除cdn网络以外,分布式网络也可以为多台服务器按照分布式架构组成的服务器集群,分布式节点为该服务器集群中的任一服务器。
29.在另一示例中,分布式网络也可以为边缘云网络,该边缘云网络可以是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的云计算平台,以形成边缘位置的计算、网络、存储、安全等能力全面的弹性云平台。该边缘云网络中可以包括多个边缘节点(即分布式节点),从而在更靠近终端的网络边缘上提供服务。应该注意的,本技术实施例并不限制分布式网络具体为何种网络,任意多台计算设备组成的分布式架构的网络均适用于本技术。
30.本技术实施例所述的服务代码可以为具有较完整功能的应用程序的代码,如浏览器、即时通讯软件等应用程序的代码。服务代码也可以为轻量化的程序代码,如一些具有较完整功能的应用程序中的子程序、被其他应用程序调用的子程序代码、不包括代码或仅包括少量代码的程序代码等。本技术实施例并不限制服务代码的具体类型,任意通过编辑开发生成并能够通过运行获得执行结果的程序代码均可以为服务代码。
31.参见图1,该方法具体包括以下步骤:
32.步骤101:根据接收到的针对服务代码的开发请求,接收并存储新开发的服务代码的编辑信息。
33.本技术实施例的执行主体即为分布式网络中的分布式节点。分布式节点上配置了用于开发服务代码的开发功能模块。分布式节点通过该开发功能模块为用户提供服务代码的开发服务。
34.分布式网络中包括的每个分布式节点都可以配置上述开发功能模块,以为用户提供服务代码的开发服务。或者,分布式网络中部分分布式节点配置上述开发功能模块来为用户提供开发服务。分布式网络中部署的上述开发服务对应于预设的服务域名。客户端中设置有与该服务域名关联的开发接口,该客户端可以为安装于手机或电脑等用户终端上的任意客户端,如浏览器、即时通讯软件、电商客户端等。
35.在本技术一示例性实施例中,当用户需要开发服务代码时,用户点击客户端中的该开发接口,客户端检测到该开发接口的点击事件,获取该开发接口关联的服务域名,发送域名解析请求给dns(domain name system,域名装置)服务器,该域名解析请求携带该服务域名及客户端的位置信息。
36.dns服务器中存储有该服务域名与每个能够提供开发服务的分布式节点的节点信息之间的映射关系,该节点信息包括分布式节点的ip地址和位置信息。dns服务器接收客户端发送的该域名解析请求,根据该域名解析请求包括的服务域名,获取对应的每个提供开发服务的分布式节点的节点信息。分别从每个分布式节点的节点信息中获取每个分布式节点的位置信息,根据每个分布式节点的位置信息和请求中携带的客户端的位置信息,确定出与该客户端之间具有最优路由的分布式节点,例如距离该客户端最近的提供开发服务的分布式节点或者二者处于同一区域的分布式节点等。从所确定的分布式节点的节点信息中获取该分布式节点的ip地址。dns服务器将该ip地址反馈给客户端。客户端根据dns服务器反馈的ip地址发送开发请求给对应的分布式节点。
37.通过dns服务器根据客户端的位置信息,将服务代码开发对应的服务域名解析到距离客户端最近的分布式节点上,使得客户端能够就近访问分布式节点上的服务代码开发功能,提高开发请求的响应速度。
38.分布式节点接收由客户端发送的针对服务代码的开发请求,根据该开发请求,该分布式节点可以指示目标终端显示服务代码的开发编辑界面,其中,目标终端即为发送该开发请求的客户端。在一示例中,,分布式节点接收到该开发请求后,可以获取服务代码的开发编辑界面的url(uniform resource locator,统一资源定位),发送该url给目标终端。目标终端接收到分布式节点返回的该url,根据该url从该分布式节点获取服务代码开发对应的界面数据,根据该界面数据渲染并显示服务代码的开发编辑界面。
39.作为另一种实现方式,分布式节点接收到开发请求后,也可以直接将服务代码的开发编辑界面发送给目标终端。目标终端接收并显示该开发编辑界面。本领域技术人员可以根据实现需要,确定对应的指示方式,或者采用其他现有的任意界面显示方式,本技术对此不作特殊限定。
40.当目标终端显示该开发编辑界面时,用户可以直观地看到开发编辑界面包括的每个代码开发选项,并方便地对代码开发选项进行编辑操作,人机交互性好,提高了服务代码的开发效率。
41.其中,代码开发选项可以为各种可供用户编辑的代码组件,代码组件可以包括输入框、选择框、拖拽控件等。在开发编辑界面中,可以包括至少一个代码开发选项,需要说明的,本技术所述的至少一个可以是一个,也可以是两个或者两个以上的任意数量,本技术对此不作特殊限定。
42.目标终端显示开发编辑界面后,用户可以对界面中的一个代码开发选项进行编辑,如编辑代码开发选项的属性,点击代码开发选项,拖拽代码开发选项,在代码开发选项中输入信息等等;用户也可以根据实际需要,将多个代码开发选项进行组合、移动或者属性编辑等操作。由此,用户只需针对开发编辑界面所提供的代码开发选项进行编辑即可实现服务代码的生成,无需手动输入所有代码,从而实现无需编码或者通过少量代码即可快速生成对应的服务代码,提高了服务代码的生成效率,保证了用户体验。
43.用户在开发编辑界面中完成编辑操作后,可以通过点击开发编辑界面中的提交按键来提交完成的编辑信息。目标终端检测到开发编辑界面中提交按键的点击事件后,从开发编辑界面获取针对至少一个代码开发选项的编辑信息,发送该编辑信息给分布式节点。
44.为了便于理解上述开发编辑界面,下面结合附图进行说明。如图2所示的开发编辑
界面,该开发编辑界面左侧为代码组件栏,代码组件栏中可以包括通用组件和布局组件等,通用组件中包括容器、文本、图片和轮播组件(即为本技术所述的代码开发选项)。布局组件包括栅格布局和垂直布局组件。用户可以点击或拖拽这些组件中的任意组件,以使点击或拖拽的组件移动到编辑区,并在编辑区对组件进行进一步地编辑操作,在操作过程中可以通过点击上侧的撤销按键来撤销不需要的编辑操作,或者点击代码编辑按键进行代码编写,或者点击保存来保存对组件的进行编辑操作形成的编辑信息。还可以点击预览按键,在预览区显示开发的服务代码的执行效果。在编辑过程中,还可以通过右侧的组件编辑或页面编辑功能来进行数据或样式的调整。编辑操作完成后,可点击发布按键提交对至少一个组件的编辑信息,目标终端将提交的编辑信息发送给分布式节点。
45.上述图2所示的开发编辑信息仅作为一种示例,实际应用中开发编辑界面的外观可以为任意形式,本技术对此不作特殊限定。
46.分布式节点接收目标终端发送的编辑信息,并根据开发编辑界面中接收到的针对至少一个代码开发选项的编辑信息,生成新开发的服务代码的编辑信息,新开发的服务代码的编辑信息至少包括新开发的服务代码的程序代码以及对应的服务域名。
47.具体地,分布式节点可以根据预设的代码生成规则,将每个代码开发选项的编辑信息组织成新开发的服务代码对应的程序代码,实现低代码开发平台的建立,提高了服务代码的开发效率。再为新开发的服务代码分配服务域名,以将该程序代码和服务域名作为新开发的服务代码的编辑信息。
48.或者,用户可以在上述开发编辑界面中输入新开发的服务代码的服务域名,目标终端将针对每个代码开发选项的编辑信息及用户输入的服务域名发送给当前的分布式节点。该分布式节点将每个代码开发选项的编辑信息组织成新开发的服务代码对应的程序代码,将该程序代码和接收到的服务域名作为新开发的服务代码的编辑信息。
49.通过上述任一方式生成新开发的服务代码的编辑信息后,分布式节点将新开发的服务代码的编辑信息存储在本地缓存或本地内存中。
50.在本技术一示例性实施例中,分布式节点可以根据新开发的服务代码的编辑信息,生成对应的代码包。即对新开发的服务代码的编辑信息进行压缩打包得到对应的代码包,然后存储该服务代码对应的服务域名与代码包的映射关系。打包得到的代码包数据量更小,当前分布式节点可以将该代码包发送至分布式网络中除当前节点以外的其他节点进行存储,代码包的数据量少,在传输时所需的带宽更小,传输速率更快,且所需占用的存储空间也更小。
51.另一种实现方式中,在对新开发的服务代码的编辑信息进行压缩打包之前,还可以先对服务代码的编辑信息进行加密,对得到的密文进行压缩打包,生成对应的代码包。如此在网络中传输该代码包时,能有效避免该代码包被窃取或篡改,提高了传输过程中的数据安全性。
52.分布式节点通过上述方式获得用户新开发的服务代码的编辑信息后,通过如下步骤102的方式对该服务代码的编辑信息进行分布式部署。
53.步骤102:将新开发的服务代码的编辑信息发送至分布式网络中除当前节点以外的其他节点进行存储。
54.在本技术实施例中,当前的分布式节点可以获取新开发的服务代码对应的部署策
略,然后将代码包按照部署策略分发至分布式网络中除当前节点以外的其他节点中进行存储。本领域技术人员可以根据在先经验预先设定对应的部署策略,例如可以设定全网部署的部署策略和非全网部署的部署策略,若为全网部署的部署策略,可以在分布式网络中的全部分布式节点上部署新开发的服务代码的编辑信息,若非全网部署的部署策略,则可以只在部分分布式节点上部署,等等。本领域技术人员也可以根据实际需要设定其他的部署策略,本技术对此不作特殊限定。
55.一种实现方式中,部署策略可以由用户进行指定,用户可以通过上述开发编界面提交部署策略,目标终端将用户提交的部署策略发送给当前的分布式节点。或者,当前的分布式节点接收到目标终端发送的用户针对至少一个代码开发选项的编辑信息后,返回部署策略的获取请求给目标终端,目标终端显示该获取请求包括的策略编辑界面,该策略编辑界面中包括至少一个策略编辑选项,策略编辑选项可以为输入框或选择框等。用户对该策略编辑界面中的至少一个策略编辑选项进行编辑操作来提交自定义的部署策略。目标终端将策略编辑界面接收到的部署策略发送给当前的分布式节点。
56.其中,用户在制定部署策略时,可以依据对新开发的服务代码的性能需求来设置部署策略。若对性能要求很高,希望任意地理位置的用户请求访问该服务代码时都能够尽快获得响应,则可以设置部署策略规定进行全网部署,即在分布式网络中的每个分布式节点上均进行部署。若对性能要求不高,用户请求访问该服务代码时允许存在一定的响应延时,则可以设置部署策略规定非全网部署,即在分布式网络中的部分分布式节点上部署即可。
57.对于非全网部署的情况,还可以在部署策略中规定在每个预设行政区划单位中的数据中心节点上部署,预设行政区划单位可以为县、区、市、省等,数据中心节点可以为预设行政区划单位中包括的任一分布式节点。或者,对于非全网部署的情况,还可以在部署策略中规定位置相邻的预定数目个节点中设置一个数据中心节点,只在该数据中心节点中部署,其他节点可以从该数据中心节点获取服务代码的代码包,预定数目可以为5或6等。
58.或者,对于非全网部署的情况,还可以在部署策略中规定特定的行政区域中的所有分布式节点需全部部署,如a省的所有分布式节点需全部部署。或者,可以在部署策略中规定特定的行政区域中在各行政区划单位的数据中心节点部署,如在a省的每个市的数据中心节点部署。
59.实际应用中部署策略还可以有更多种部署形式,本技术实施例并不限制部署策略的具体部署方式,实际应用中可根据需求来设置部署策略。
60.在该实施例中,由用户指定部署策略,可以满足用户对新开发的服务代码在部署方面的个性化需求,提高服务代码开发及部署的交互性。
61.作为另一种实现方式,部署策略也可以由当前的分布式节点来自动确定。具体地,当前的分布式节点依据获取分布式网络中除自身以外的其他各节点的当前运行状态信息,依据各节点的当前运行状态信息,确定对应的部署策略。或者,在分布式网络中设置用于确定部署策略的至少一个管理节点,管理节点可以为分布式网络中的任一分布式节点,也可以为区别于分布式节点的设备。当前的分布式节点获得新开发的服务代码的编辑信息后,发送部署策略获取请求给管理节点。管理节点收集分布式网络中当前各个分布式节点的当前运行状态信息,确定对应的部署策略,然后将确定的部署策略返回给当前的分布式节点。
62.上述分布式节点的当前运行状态信息可以包括分布式节点当前已部署的服务代码的数量、当前的负荷信息、当前的工作状态是正常还是故障等多种运行状态的一种或多种的组合。若各节点的当前运行状态信息均满足预设的良好运行状态,则确定对应的部署策略为全网部署。若存在当前运行状态信息不满足预设的良好运行状态的分布式节点,则确定对应的部署策略为非全网部署,并在部署策略中设定不部署的分布式节点的设备标识,该设备标识可以为分布式节点的i p地址、mac地址等。预设的良好运行状态可以包括当前已部署的服务代码的数量低于预设阈值,当前的负荷信息未达到上限值,当前处于正常工作状态,等等。
63.依据各个分布式节点的当前运行状态信息来确定对应的部署策略,充分考虑了各分布式节点的运行情况,既能避免个别分布式节点因部署的服务代码过多导致负荷过大,也能确保将新开发的服务代码部署在运行情况良好的分布式节点上,从而使得用户请求访问该服务代码时能够获得及时的响应。
64.当前的分布式节点通过上述任一方式获得新开发的服务代码对应的部署策略后,若该部署策略指示全网部署,则将新开发的服务代码对应的代码包发送至分布式网络中除当前节点以外的每个其他节点中进行存储。具体地,当前的分布式节点能够从分布式网络的拓扑结构中获得除自身以外的每个其他节点的地址信息,该地址信息包括其他节点的ip地址。根据每个其他节点的地址信息,将新开发的服务代码对应的代码包分别发送给其他每个节点。其他每个节点接收到该代码包后,将该代码包存储在各自的缓存或内存中。
65.若该部署策略指示非全网部署,且该部署策略规定了不部署的分布式节点的设备标识,则当前的分布式节点获得除自身以外的每个其他节点的地址信息,该地址信息还包括节点的设备标识。当前的分布式节点根据部署策略中规定的不部署的分布式节点的设备标识,从除自身以外的每个其他节点的地址信息中获取需要部署的每个其他节点的地址信息。根据需要部署的每个其他节点的地址信息,将代码包分别发送给这些节点。这些节点接收到该代码包后,将该代码包存储在各自的缓存或内存中。
66.若该部署策略指示非全网部署,且该部署策略规定了位置相邻的预定数目个节点中设置一个数据中心节点,只在该数据中心节点中部署。当前的分布式节点获得除自身以外的每个其他节点的地址信息,该地址信息还包括节点的位置信息。当前的分布式节点根据分布式网络中各个节点的位置信息,将分布式网络中的节点划分成至少一个节点集合,节点集合包括位置信息相邻的预定数目个节点。应该理解的,不同节点集合中所包含的节点可以不相重复,以避免多次发送或者多次接收的情况发生。然后将代码包发送至各节点集合中的数据中心节点进行存储,数据中心节点为节点集合中的任一节点。
67.需要说明的,数据中心节点可以是从每一节点集合包含的分布式节点中随机选取得到,也可以是通过计算节点集合中任意两个分布式节点之间的距离,选择与其他分布式节点之间的总距离最短的分布式节点作为数据中心节点,以保证数据中心节点与节点集合中其他节点之间的数据传输效率。本领域技术人员可以根据实际实现需要,选择对应的数据中心节点的确定方法,本技术对此不作特殊限定。
68.若该部署策略指示非全网部署,且该部署策略规定了在每个预设行政区划单位中的数据中心节点上部署,预设行政区划单位可以为县、区、市、省等,数据中心节点可以为预设行政区划单位中包括的任一分布式节点。则当前的分布式节点获得除自身以外的每个其
他节点的地址信息,该地址信息还包括节点的位置信息。当前的分布式节点根据分布式网络中各个节点的位置信息,按照部署策略规定的预设行政区划单位将分布式网络中位于同一预设行政区划单位中的节点划分成一个节点集合。然后将代码包发送至各节点集合中的数据中心节点进行存储。
69.各分布式节点存储代码包时,可以先从代码包中获取该服务代码对应的服务域名,存储该服务代码对应的服务域名与代码包的映射关系。如此后续接收到针对该服务代码的访问请求时可以依据服务域名方便地获取到对应的代码包。
70.在本技术实施例中,当前的分布式节点可以通过上述方式将新开发的服务代码的编辑信息主动地发送给分布式网络中的其他分布式节点进行存储。作为另一种实现方式,分布式网络中的每个分布式节点均每隔预设时长向除自身以外的其他分布式节点发送代码获取请求,以获取其他分布式节点在该预设时长内新开发的服务代码的代码包,预设时长可以为1小时、6小时、10小时或一天等。分布式网络中任一分布式节点接收到其他节点发送的代码获取请求,将过去预设时长内新开发的服务代码对应的代码包发送给其他节点。
71.通过本步骤的任一部署方式将新开发的服务代码的代码包部署在分布式网络中的多个分布式节点中后,部署了该服务代码的任一分布式节点若接收到针对该服务代码的访问请求,则通过如下步骤103的操作进行响应。
72.步骤103:若接收到针对统一资源定位符的访问请求,获取与统一资源定位符对应的目标服务代码的编辑信息,并运行目标服务代码。
73.用户通过请求分布式节点完成服务代码的开发,并获得新开发的服务代码的服务域名后,可以在客户端中设置与该服务代码的统一资源定位符绑定的访问接口,或者可以通过即时通讯软件、邮箱或博客等向其他用户分享与该服务代码的统一资源定位符绑定的访问接口或小程序等。其中,该统一资源定位符中至少包括该服务代码的服务域名,还可以包括传输协议(如http)、端口、虚拟目录、文件名、定位参数等多种信息中的一种或多种。
74.当有用户点击该访问接口或小程序时,用户终端获取与该访问接口或小程序绑定的统一资源定位符,基于该统一资源定位符和用户终端的位置信息向dns服务器发起域名解析请求,dns服务器对该统一资源定位符包括的服务域名进行解析,获得距离该用户终端最近的分布式节点的ip地址或者与该用户终端具有最优路由的分布式节点的ip地址,并将该ip地址返回给用户终端。
75.用户终端接收dns服务器反馈的ip地址,发送访问请求给该ip地址对应的分布式节点,该访问请求中包括该统一资源定位符。该分布式节点接收该访问请求,从该访问请求获取服务代码对应的统一资源定位符,从该统一资源定位符中获取目标服务代码的服务域名,根据该服务域名,查询本地是否存储有与该统一资源定位符对应的目标服务代码的代码包。如果有,则根据目标服务代码的代码包,运行目标服务代码。具体地,分布式节点可以对代码包进行解压缩,若代码包包括的目标服务代码的编辑信息未加密,则直接执行该编辑信息中包括的目标服务代码的程序代码,将执行结果返回给用户终端。若代码包包括的目标服务代码的编辑信息加密了,则先采用预先配置的密钥进行解密,然后执行解密后的编辑信息中包括的目标服务代码的程序代码,将执行结果返回给用户终端。
76.若当前的分布式节点查询到本地未存储该统一资源定位符对应的目标服务代码,则从当前节点所属的节点集合中的数据中心节点获取目标服务代码的代码包,并根据代码
包运行目标服务代码。具体地,当前节点发送数据获取请求给其所属的节点集合中的数据中心节点,该数据获取请求中包括目标服务代码对应的统一资源定位符。数据中心节点根据该统一资源定位符中的服务域名,从本地获取对应的目标服务代码的代码包,发送该代码包给当前节点。当前节点接收该代码包,执行该代码包中包括的目标服务代码的程序代码,再将执行结果返回给用户终端。
77.分布式网络中的任一分布式节点都可以通过上述步骤101-103的操作为用户提供服务代码开发服务,以及在分布式网络中部署开发出的服务代码,并响应用户对服务代码的访问请求。
78.在本技术的一些实施例中,考虑到分布式节点可能存在出现故障,或者当前收到的开发请求的数量过多,或者自身的负荷太高等情况,在出现这些情况时分布式节点可能无法响应目标终端的开发请求,或者响应时长很长。为了避免这种情况发生,可以预先在分布式节点中配置开发请求的预设响应条件,该预设响应条件可以规定分布式节点响应开发请求所需满足的状态条件。例如,预设响应条件可以规定分布式节点当前接收到的开发请求的总数目小于或等于预设阈值,和/或,可以规定分布式节点当前处于正常工作状态,和/或,可以规定分布式节点当前的负荷量小于或等于其计算资源所能承担的负荷上限值,等等。本技术实施例并不限制预设响应条件的具体内容,实际应用中可根据需求来配置分布式节点的预设响应条件。
79.当分布式节点接收到针对服务代码的开发请求后,获取自身当前的运行状态,该运行状态包括当前接收到的开发请求数目、当前的工作状态是正常还是故障、当前的负荷信息等多种信息的至少之一。分布式节点根据获取的运行状态和预先配置的预设响应条件,确定是否响应该目标终端的开发请求。若是,则按照步骤101的方式响应该开发请求,接收并存储新开发的服务代码的编辑信息。
80.若确定不响应该开发请求,则当前的分布式节点根据该开发请求对应的源地址信息(即目标终端的地址信息),将该开发请求转发至除当前的分布式节点以外的与该源地址信息处于相同区域的任一其他节点。
81.具体地,当前的分布式节点可以从分布式网络的拓扑结构中获得除当前节点以外的其他每个分布式节点的地址信息,该地址信息可以包括分布式节点的位置信息、ip地址等。根据该开发请求对应的源地址信息及除当前节点以外的其他每个分布式节点的地址信息,从除当前节点以外的其他每个分布式节点中确定出与源地址信息处于相同区域的目标节点。若存在多个处于相同区域的目标节点时,可以从这多个目标节点中选择距离目标终端最近的目标节点,或者,可以从这多个目标节点中随机选择一个目标节点。当前的分布式节点选择出目标节点之后,可以将该开发请求及源地址信息转发给目标节点,后续由目标节点按照步骤101的方式响应目标终端的开发请求。
82.在一示例中,与该源地址信息处于相同区域的任一其他节点,可以是当前分布式节点所属的节点集合中除当前节点以外的任一其他节点。应该理解的,节点集合包括位置信息相邻的预定数目个节点,所以当前分布式节点所属的节点集合中的其他节点都是与当前节点距离相近的分布式节点。所以,当前分布式节点可以从自身所属的节点集合中除自身以外的其他节点中选取一节点进行转发,而无需计算所有分布式节点与源地址信息之间距离最短或者具有最优路由的节点,提高了分布式节点的响应效率,保证了用户体验。
83.或者,当前的分布式节点还可以根据选择出的目标节点的地址信息,向目标终端反馈跳转指示,以使目标终端根据跳转指示向目标节点发送开发请求,例如该跳转指示可以是301或者302的状态码等。该跳转指示中可以携带目标节点的地址信息,目标终端接收到该跳转指示后,根据目标节点的地址信息,发送开发请求给目标节点。目标节点接收到开发请求后,按照步骤101的方式响应该开发请求。
84.在本技术实施例中,在分布式网络的分布式节点中提供服务代码的开发功能,并将新开发的服务代码部署在分布式网络的多个分布式节点中。分布式节点接收到针对目标服务代码的访问请求时运行该目标服务代码。如此将服务代码的开发及运行功能部署在分布式节点中,通过分布式节点能够快速响应用户的开发请求或目标服务代码的访问请求,缩短了用户等待时长,提高了服务代码的开发效率和访问效率。且用户需要开发服务代码时无需关注服务器配置或运维等方面,只需通过分布式节点提供的开发功能编辑服务代码的编辑信息即可,简化了服务代码的开发过程。且可以很方便地依据请求量来分配提供开发服务的分布式节点的数目,安排合理的计算资源满足业务需求,避免出现计算资源不足或浪费计算资源的情况。
85.本技术实施例还提供一种基于分布式网络的服务代码处理装置,该装置用于执行上述任一实施例提供的基于分布式网络的服务代码处理方法。参见图3,该装置包括:
86.代码设计组件201,用于根据接收到的针对服务代码的开发请求,接收并存储新开发的服务代码的编辑信息;
87.代码部署组件202,用于将新开发的服务代码的编辑信息发送至分布式网络中除当前节点以外的其他节点进行存储;
88.代码运行组件203,用于若接收到针对统一资源定位符的访问请求,获取与统一资源定位符对应的目标服务代码的编辑信息,并运行目标服务代码。
89.代码设计组件201,用于根据接收到的针对服务代码的开发请求,指示目标终端显示服务代码的开发编辑界面,开发编辑界面包括至少一个代码开发选项;根据开发编辑界面接收到的针对至少一个代码开发选项的编辑信息,生成新开发的服务代码的编辑信息;将新开发的服务代码的编辑信息进行存储。
90.代码部署组件202,用于根据新开发的服务代码的编辑信息,生成对应的代码包,编辑信息至少包括新开发的服务代码的程序代码以及对应的服务域名;获取新开发的服务代码对应的部署策略;将代码包按照部署策略分发至分布式网络中除当前节点以外的其他节点中进行存储。
91.代码部署组件202,用于若部署策略指示全网部署,将代码包发送至分布式网络中除当前节点以外的每个其他节点中进行存储;若部署策略指示非全网部署,将代码包发送至分布式网络中除当前节点以外的部分其他节点中进行存储。
92.代码部署组件202,用于根据分布式网络中各个节点的位置信息,将分布式网络中的节点划分成至少一个节点集合,节点集合包括位置信息相邻的预定数目个节点;将代码包发送至各节点集合中的数据中心节点进行存储,数据中心节点为节点集合中的任一节点。
93.代码运行组件203,用于根据接收到的针对统一资源定位符的访问请求,查询本地是否存储有与统一资源定位符对应的目标服务代码的代码包;若是,则根据目标服务代码
的代码包,运行目标服务代码;若否,则从当前节点所属的节点集合中的数据中心节点获取目标服务代码的代码包,并根据代码包运行目标服务代码。
94.代码设计组件201,用于接收针对服务代码的开发请求;根据当前节点的运行状态,确定是否响应开发请求;若是,则接收并存储新开发的服务代码的编辑信息;若否,则根据开发请求对应的源地址信息,将开发请求转发至除当前节点以外的与源地址信息处于相同区域的任一其他节点。
95.代码设计组件201,用于根据开发请求对应的源地址信息,确定除当前节点以外的与源地址信息处于相同区域的目标节点;根据目标节点的地址信息,向目标终端反馈跳转指示,以使目标终端根据跳转指示向目标节点发送开发请求。
96.本技术的上述实施例提供的代码开发装置与本技术实施例提供的基于分布式网络的服务代码处理方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
97.本技术实施方式还提供一种电子设备,以执行上述基于分布式网络的服务代码处理方法。请参考图4,其示出了本技术的一些实施方式所提供的一种电子设备的示意图。如图4所示,电子设备3包括:处理器300,存储器301,总线302和通信接口303,所述处理器300、通信接口303和存储器301通过总线302连接;所述存储器301中存储有可在所述处理器300上运行的计算机程序,所述处理器300运行所述计算机程序时执行本技术前述任一实施方式所提供的基于分布式网络的服务代码处理方法。
98.其中,存储器301可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口303(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
99.总线302可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器301用于存储程序,所述处理器300在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方式揭示的所述基于分布式网络的服务代码处理方法可以应用于处理器300中,或者由处理器300实现。
100.处理器300可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器300中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器300可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器301,处理器300读取存储器301中的信息,结合其硬件完成上述方法的步骤。
101.本技术实施例提供的电子设备与本技术实施例提供的基于分布式网络的服务代
码处理方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
102.本技术实施方式还提供一种与前述实施方式所提供的基于分布式网络的服务代码处理方法对应的计算机可读存储介质,请参考图5,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的基于分布式网络的服务代码处理方法。
103.需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
104.本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的基于分布式网络的服务代码处理方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
105.需要说明的是:
106.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技术,以便不模糊对本说明书的理解。
107.类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在上面对本技术的示例性实施例的描述中,本技术的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
108.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本技术的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
109.以上所述,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献