CN111381812A - 程序发布方法、调用方法、装置、存储介质和计算机设备 - Google Patents
程序发布方法、调用方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN111381812A CN111381812A CN201811625427.5A CN201811625427A CN111381812A CN 111381812 A CN111381812 A CN 111381812A CN 201811625427 A CN201811625427 A CN 201811625427A CN 111381812 A CN111381812 A CN 111381812A
- Authority
- CN
- China
- Prior art keywords
- program
- issued
- service module
- server
- module
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000006870 function Effects 0.000 claims abstract description 19
- 238000004806 packaging method and process Methods 0.000 claims abstract description 11
- 238000012856 packing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 238000011161 development Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种程序发布方法、调用方法、装置、存储介质和计算机设备,所述的程序发布方法包括:获取程序中待发布的业务模块的代码;所述程序包括具有不同独立功能的多个业务模块;对所述待发布的业务模块的代码进行打包;根据输入的待部署的服务器的地址,将打包后的业务模块的代码推送到所述待部署的服务器中进行发布。本申请实施例提高了程序发布的准确性。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种程序发布方法、调用方法、装置、存储介质和计算机设备。
背景技术
随着项目的不断发展,架构会不断的调整优化,项目程序代码也会越来越复杂。考虑到web(World Wide Web,万维网)程序发布的原子性,在多文件推送发布时,容易漏传文件或者部分文件传输超时,引发访问数据不一致问题,如何安全的上线程序代码,保证数据一致性,已成为本领域技术人员须解决的问题。
在现有的web开发模式下,基本都是使用MVC(Model View Controller,模型-视图-控制器)的框架来开发程序代码,在多人开发项目中,由于公有文件有可能多人同时修改,经常造成冲突,多人修改的程序代码同时提交,容易导致未测试完成的程序代码会同时被提交到线上,代码依赖严重,程序发布容易出错。
发明内容
本申请针对现有方式的缺点,提出一种程序发布方法、调用方法、装置、存储介质和计算机设备,以提高程序发布的准确性。
本申请的实施例根据第一个方面,提供了一种程序发布方法,包括:
获取程序中待发布的业务模块的代码;所述程序包括具有不同独立功能的多个业务模块;
对所述待发布的业务模块的代码进行打包;
根据输入的待部署的服务器的地址,将打包后的业务模块的代码推送到所述待部署的服务器中进行发布。
在一个实施例中,所述对所述待发布的业务模块的代码进行打包,包括:
通过phar扩展对所述待发布的业务模块的代码进行打包。
在一个实施例中,所述将打包后的业务模块的代码推送到所述待部署的服务器中进行发布,之后,还包括:
向配置中心发送包含所述待发布的业务模块所部署的服务器的地址的请求,以指示所述配置中心对存储的业务模块的路由信息进行更新。
本申请的实施例根据第二个方面,还提供了一种程序调用方法,包括:
接收调用程序中已发布的业务模块的请求;所述业务模块通过上述任意一项所述的程序发布方法进行发布;
获取所述已发布的业务模块的路由信息;所述路由信息用于指示所述已发布的业务模块所部署的服务器的地址;
从所述已发布的业务模块所部署的服务器的地址中选择线路最优的服务器的地址;
调用线路最优的服务器中所述已发布的业务模块。
在一个实施例中,所述调用线路最优的服务器中所述已发布的业务模块,之后,还包括:
若所述已发布的业务模块调用失败,从所述已发布的业务模块所部署的服务器的地址中选择线路次优的服务器的地址;
调用线路次优的服务器中所述已发布的业务模块。
本申请的实施例根据第三个方面,还提供了一种程序发布装置,包括:
代码获取模块,用于获取程序中待发布的业务模块的代码;所述程序包括具有不同独立功能的多个业务模块;
代码打包模块,用于对所述待发布的业务模块的代码进行打包;
代码发布模块,用于根据输入的待部署的服务器的地址,将打包后的业务模块的代码推送到所述待部署的服务器中进行发布。
本申请的实施例根据第四个方面,还提供了一种程序调用装置,包括:
请求接收模块,用于接收调用程序中已发布的业务模块的请求;所述业务模块通过上述所述的程序发布装置进行发布;
路由信息获取模块,用于获取所述已发布的业务模块的路由信息;所述路由信息用于指示所述已发布的业务模块所部署的服务器的地址;
地址选择模块,用于从所述已发布的业务模块所部署的服务器的地址中选择线路最优的服务器的地址;
业务模块调用模块,用于调用线路最优的服务器中所述已发布的业务模块。
本申请的实施例根据第五个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述的程序发布方法,或者上述任意一项所述的程序调用方法。
本申请的实施例根据第六个方面,还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项所述的程序发布方法。
本申请的实施例根据第七个方面,还提供了另一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项所述的程序调用方法。
上述的程序发布方法、调用方法、装置、存储介质和计算机设备,在物理路径上做到按业务模块开发,不同业务模块之间功能相互独立,每个业务模块可以随时部署上线,大大的提高了程序的开发效率,增强程序升级安全性,提高了程序发布的准确性。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请一个实施例的程序发布方法的示意图;
图2为本申请一个实施例的程序发布方法应用场景的示意图;
图3为本申请一个实施例的程序发布装置的示意图;
图4为本申请一个实施例的程序调用方法的示意图;
图5为本申请一个实施例的程序调用方法应用场景的示意图;
图6为本申请一个实施例的程序调用装置的示意图;
图7为本申请一个实施例的计算机设备的示意图;
图8为本申请另一个实施例的计算机设备的示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
首先发布程序的角度出发,对本申请实施例提供的程序发布方法和装置的具体实施方式进行详细介绍。
如图1所示,为一实施例的程序发布方法的示意图,所述方法包括:
S110、获取程序中待发布的业务模块的代码;所述程序包括具有不同独立功能的多个业务模块。
程序可以是任何需要发布的程序。程序可以被看作是由一系列具有特定功能的业务模块组成,这些业务模块之间的相互作用就形成了程序的所有功能。业务模块是指可组成程序的、具有某种确定独立功能的半自律性的子系统,可以通过标准的界面和其他同样的业务模块按照一定的规则相互联系而构成的更加复杂的程序。每个业务模块的研发和改进都独立于其他业务模块的研发和改进,每个业务模块所特有的信息处理过程都被包含在业务模块的内部,如同一个“黑箱”,但是有一个或数个通用的标准界面与程序或其他业务模块相互连接。
可选的,业务模块的代码可以通过在现有的微型php slim框架之上进行二次封装得到,其中,php是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到HTML(HyperText Markup Language,超级文本标记语言)中,尤其适合web开发,slim作为一种轻量级的tensorflow库,使得模型的构建,训练,测试都变得更加简单,tensorflow是一个基于数据流编程(dataflow programming)的符号数学系统。具体过程包括:开发人员在实现一个具体的业务需求时,可以通过git下载封装后的slim框架模板(只有公用的函数类库,无具体业务),根据业务需求实现业务逻辑,即业务模块的代码,并将业务模块的代码提交到远程git仓库,其中,git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
本申请实施例提供的程序发布方法在包发布器中实现,包发布器用于打包发布业务模块的代码,应当理解的是,包发布器是实现业务模块发布设备的统称,只是为了方便描述。在一个实施例中,获取程序中待发布的业务模块的代码,包括:登录包发布器,通过包发布器中的git自动检出待发布的业务模块的代码。
S120、对所述待发布的业务模块的代码进行打包。
打包指的是将几个相关文件放在一起,用压缩软件将这几个相关文件压缩为一个压缩文件。在一个实施例中,所述对所述待发布的业务模块的代码进行打包,包括:通过phar扩展对所述待发布的业务模块的代码进行打包。phar扩展提供了一种将完整的php应用程序分布在单个文件中并从该文件运行而不需要将其提取到磁盘的方式。另外,phar档案可以像php一样在命令行和web服务器上像任何其他文件一样容易地执行。
为了后续方便调用业务模块,可选的,将业务模块的代码自动压缩成【业务模块名.压缩格式(如zip等)】文件。即压缩文件以业务模块名进行命名,以区别于其他业务模块。需要说明的是,本申请并不限制于通过业务模块名命名压缩文件,开发人员还可以采用其它方式命名压缩文件,只要可以表征该压缩文件为对应业务模块的压缩文件即可。
S130、根据输入的待部署的服务器的地址,将打包后的业务模块的代码推送到所述待部署的服务器中进行发布。
待部署的服务器用于业务模块部署上线,可以是nginx等,nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP(Internet Mail Access Protocol,Internet邮件访问协议)/POP3(Post Office Protocol-Version 3,邮局协议版本3)/SMTP(Simple MailTransfer Protocol,简单邮件传输协议)服务器,其中,HTTP是用于从WWW服务器传输超文本到本地浏览器的传输协议。待部署的服务器的地址可以是一个地址,也可以是多个地址。地址一般指的是IP地址(Internet Protocol Address,网际协议地址)。可以在包发布器中设置服务器地址的选择界面,在该选择界面中设置多个服务器的地址,用户通过该选择界面选择业务模块需要部署的服务器。用户也可以直接输入需要部署的服务器的地址。
用户输入要部署上线的服务器IP列表后,可以通过rsync(remote sync,linux系统下的数据镜像备份工具)服务或者其他方式推送业务模块的代码到指定部署的服务器上。服务器自动解压业务模块的文件到相关目录,然后进行重启(reload),php程序(也即业务模块)即可接入访问。
在一个实施例中,所述将打包后的业务模块的代码推送到所述待部署的服务器中进行发布,之后,还包括:向配置中心发送包含所述待发布的业务模块所部署的服务器的地址的请求,以指示所述配置中心对存储的业务模块的路由信息进行更新。配置中心用于存储各个业务模块的路由信息,路由信息用于指示业务模块所部署的服务器,为了方便管理,配置中心可以维护一个路由信息表,该路由信息表存储各个业务模块的路由信息。业务模块的代码推送完毕后,包发布器自动触发后台指定脚本发送http请求到配置中心,http请求包括所述待发布的业务模块所部署的服务器的地址,配置中心接收到http请求后自动更新路由信息表中该业务模块的路由信息。
可选的,如果请求更新路由信息失败或者超时,会自动重新发送请求进行重试,重试指定次数仍然不成功,则会回滚服务并介入短信、微会等告警,告知技术人员进行手动更新。
另外,本申请可以按需弹性部署业务模块,例如,每个服务器的承载能力有限,当目前的服务器均要达到饱和时,可以通过添加新的服务器的方式部署业务模块,通过该种方式提高了程序发布的安全性和服务质量。
为了更好的理解本申请实施例提供的程序发布方法,下面结合一个具体实施例进行介绍。
如图2所示,为一具体实施例的程序发布方法应用场景的示意图。该程序发布方法在包发布器中实现。开发人员通过git下载封装后的slim框架模板,根据业务需求实现业务模块,将业务模块的代码提交到远程git仓库。用户通过界面操作包发布器,具体为:用户登录包发布器,通过包发布器的git自动搜索出待发布的业务模块的代码,包发布器将业务模块的代码自动压缩成【业务模块名.zip】文件,在用户输入要部署上线的服务器IP列表后,包发布器通过rsync服务推送业务模块的代码到指定部署的应用服务器上。应用服务器自动解压业务模块的文件到相关目录,reload应用服务器,业务模块的代码即可接入访问,实现程序中该业务模块的发布。业务模块的代码推送完毕后,包发布器自动触发后台指定脚本发送http请求到配置中心,配置中心自动更新路由配置,如果调用配置中心失败或者超时,包发布器会自动重试,重试指定次数不成功,包发布器会回滚服务并介入短信、微会告警,告知技术人员进行手动更新。
基于同一发明构思,本申请提供一种程序发布装置,下面结合附图对本申请装置的具体实施方式进行详细介绍。
如图3所示,为一实施例的程序发布装置的示意图,所述装置包括:
代码获取模块110,用于获取程序中待发布的业务模块的代码;所述程序包括具有不同独立功能的多个业务模块;
代码打包模块120,用于对所述待发布的业务模块的代码进行打包;
代码发布模块130,用于根据输入的待部署的服务器的地址,将打包后的业务模块的代码推送到所述待部署的服务器中进行发布。
在一个实施例中,代码打包模块120通过phar扩展对所述待发布的业务模块的代码进行打包。
在一个实施例中,所述装置还包括与代码发布模块130相连的路由更新模块,所述路由更新模块用于向配置中心发送包含所述待发布的业务模块所部署的服务器的地址的请求,以指示所述配置中心对存储的业务模块的路由信息进行更新。
上述程序发布装置的其它技术特征与上述程序发布方法的技术特征相同,在此不予赘述。
上述程序发布方法和装置,与现有技术比较时,具备以下优点:
1、在物理路径上做到按业务模块开发,不同业务模块之间功能相互独立,每个业务模块可以随时部署上线,大大的提高了程序的开发效率,增强程序升级安全性,提高了程序发布的准确性;
2、实现了程序安全便捷部署上线,基于模块化发布的方式,根据不同业务模块访问流量的不同,做到按需弹性部署,提高了程序发布的安全性和服务质量;
3、把一个程序分解成各个不同的业务模块,不同的开发者专注于对其中某一业务模块的开发与发布,一方面实现了劳动的分工,另一方面也提高了自由软件开发和发布的效率,而对于开发者而言,基于模块化的自由软件开发具有更大的吸引力,其在参与开发过程中可以得到更高的期望收益。
本申请实现程序发布后,还实现了对已发布程序的调用,下面从程序调用的角度出发,对本申请程序调用方法和装置的具体实施方式进行详细介绍。
如图4所示,为一实施例的程序调用方法的示意图,所述方法包括:
S210、接收调用程序中已发布的业务模块的请求;所述业务模块通过上述任意一项所述的程序发布方法进行发布。
部署好程序业务模块后,用户通过用户app(application,应用程序)端发起页面请求,调用对应的程序,由于程序包括多个功能独立的业务模块,所以调用程序也即是调用程序中已发布的业务模块。
可选的,本实施例提供的方法可以在前端机中实现。前端机可以是node.js前端机等,其中,node.js是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。
用户发起程序调用请求后,可以通过域名dns系统(Domain Name System,域名系统)将用户发起的程序调用请求负载均衡的分发到前端机上,具体负载均衡的方式可以根据现有技术中已有的方式实现。
S220、获取所述已发布的业务模块的路由信息;所述路由信息用于指示所述已发布的业务模块所部署的服务器的地址。
如前所述,配置中心存储有业务模块的路由信息。前端机可以在每次接收到用户调用程序的请求时才去获取已发布的业务模块的路由信息。前端机也可以第一次会从配置中心拉取最新的路由信息,并且缓存到本地文件,以减少网络请求,提高性能。
S230、从所述已发布的业务模块所部署的服务器的地址中选择线路最优的服务器的地址。
已发布的业务模块有可能部署到多个服务器中,为了使得系统可以快速响应处理请求,本申请还实现了动态的调用策略机制,即前端机选择线路最优的地址来轮询发起调用。线路最优指的是线路最短或者线路延迟最短等等。从已发布的业务模块所部署的服务器的地址中选择线路最优的服务器的地址可以根据现有技术中已有的方式实现。
S240、调用线路最优的服务器中所述已发布的业务模块。
找到线路最优的服务器后,调用线路最优的服务器中存储的已发布的业务模块,通过该种方式提高了请求处理的响应速度。
在一个实施例中,所述调用线路最优的服务器中所述已发布的业务模块,之后,还包括:若所述已发布的业务模块调用失败,从所述已发布的业务模块所部署的服务器的地址中选择线路次优的服务器的地址;调用线路次优的服务器中所述已发布的业务模块。在调用中根据接口返回的状态码记录调用情况,如果调用失败,则选择调用线路次优的服务器中的业务模块,以保证程序调用的正常进行。
可选的,调用次数失败过多的IP会自动被剔除出路由信息表,以避免下次重复调用该IP。另外,超过指定的缓存时间,前端机会重新拉取最新的路由信息表。前端机会定期对部署业务模块的服务器的响应效果进行评估,并根据评估结果完善调用策略,实现程序调用优化管理。
为了更好的理解本申请实施例提供的程序发布方法,下面结合一个具体实施例进行介绍。
如图5所示,为一具体实施例的程序调用方法应用场景的示意图。该程序调用方法在node.js前端机中实现。用户通过用户app端发起程序调用请求(即图中的http协议),域名dns系统将用户请求负载均衡的分发到node.js前端机上,node.js前端机第一次会从配置中心拉取最新的路由配置,并且缓存到本地文件,node.js从路由配置表里选择线路最优的应用服务的IP来调用对应的业务模块,从而实现了程序的调用。
基于同一发明构思,本申请还提供一种程序调用装置,下面结合附图本申请装置的具体实施方式进行详细介绍。
如图6所示,为一实施例的程序调用装置的示意图,所述装置包括:
请求接收模块210,用于接收调用程序中已发布的业务模块的请求;所述业务模块通过上述所述的程序发布装置进行发布;
路由信息获取模块220,用于获取所述已发布的业务模块的路由信息;所述路由信息用于指示所述已发布的业务模块所部署的服务器的地址;
地址选择模块230,用于从所述已发布的业务模块所部署的服务器的地址中选择线路最优的服务器的地址;
业务模块调用模块240,用于调用线路最优的服务器中所述已发布的业务模块。
在一个实施例中,业务模块调用模块240在所述已发布的业务模块调用失败时,从所述已发布的业务模块所部署的服务器的地址中选择线路次优的服务器的地址;调用线路次优的服务器中所述已发布的业务模块。
上述程序调用装置的其它技术特征与上述程序调用方法的技术特征相同,在此不予赘述。
上述程序调用方法和装置,通过调用线路最优的业务模块,使得系统可以快速响应处理请求。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述的程序发布方法,或者上述任意一项所述的程序调用方法。其中,所述存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。可以是只读存储器,磁盘或光盘等。
应当理解的是,本实施例中的计算机可读存储介质,可以为1个独立的整体,同时存储程序发布的程序和程序调用的程序,当需要程序发布的操作时,从该计算机可读存储介质中读取程序发布的程序,当需要程序调用的操作时,从该计算机可读存储介质中读取程序调用的程序。也可以仅存储程序发布的程序或者程序调用的程序。
本申请实施例还提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项所述的程序发布方法。
图7为本申请计算机设备的结构示意图,包括处理器320、存储装置330、输入单元340以及显示单元350等器件。本领域技术人员可以理解,图7示出的结构器件并不构成对所有计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储装置330可用于存储应用程序310以及各功能模块,处理器320运行存储在存储装置330的应用程序310,从而执行设备的各种功能应用以及数据处理。存储装置330可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本申请所公开的存储装置包括但不限于这些类型的存储装置。本申请所公开的存储装置330只作为例子而非作为限定。
输入单元340用于接收信号的输入,以及程序中待发布的业务模块的代码。输入单元340可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元350可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元350可采用液晶显示器、有机发光二极管等形式。处理器320是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储装置330内的软件程序和/或模块,以及调用存储在存储装置内的数据,执行各种功能和处理数据。
在一实施方式中,计算机设备包括一个或多个处理器320,以及一个或多个存储装置330,一个或多个应用程序310,其中所述一个或多个应用程序310被存储在存储装置330中并被配置为由所述一个或多个处理器320执行,所述一个或多个应用程序310配置用于执行以上实施例所述的程序发布方法。
本申请实施例还提供另一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项所述的程序调用方法。
图8为本申请计算机设备的结构示意图,包括处理器420、存储装置430、输入单元440以及显示单元450等器件。本领域技术人员可以理解,图8示出的结构器件并不构成对所有计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储装置430可用于存储应用程序410以及各功能模块,处理器420运行存储在存储装置430的应用程序410,从而执行设备的各种功能应用以及数据处理。存储装置430可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本申请所公开的存储装置包括但不限于这些类型的存储装置。本申请所公开的存储装置430只作为例子而非作为限定。
输入单元440用于接收信号的输入,以及调用程序中已发布的业务模块的请求。输入单元440可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元450可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元450可采用液晶显示器、有机发光二极管等形式。处理器420是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储装置430内的软件程序和/或模块,以及调用存储在存储装置内的数据,执行各种功能和处理数据。
在一实施方式中,计算机设备包括一个或多个处理器420,以及一个或多个存储装置430,一个或多个应用程序410,其中所述一个或多个应用程序410被存储在存储装置430中并被配置为由所述一个或多个处理器420执行,所述一个或多个应用程序410配置用于执行以上实施例所述的程序调用方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解的是,在本申请各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种程序发布方法,其特征在于,包括:
获取程序中待发布的业务模块的代码;所述程序包括具有不同独立功能的多个业务模块;
对所述待发布的业务模块的代码进行打包;
根据输入的待部署的服务器的地址,将打包后的业务模块的代码推送到所述待部署的服务器中进行发布。
2.根据权利要求1所述的程序发布方法,其特征在于,所述对所述待发布的业务模块的代码进行打包,包括:
通过phar扩展对所述待发布的业务模块的代码进行打包。
3.根据权利要求1或2所述的程序发布方法,其特征在于,所述将打包后的业务模块的代码推送到所述待部署的服务器中进行发布,之后,还包括:
向配置中心发送包含所述待发布的业务模块所部署的服务器的地址的请求,以指示所述配置中心对存储的业务模块的路由信息进行更新。
4.一种程序调用方法,其特征在于,包括:
接收调用程序中已发布的业务模块的请求;所述业务模块通过权利要求1至3任意一项所述的程序发布方法进行发布;
获取所述已发布的业务模块的路由信息;所述路由信息用于指示所述已发布的业务模块所部署的服务器的地址;
从所述已发布的业务模块所部署的服务器的地址中选择线路最优的服务器的地址;
调用线路最优的服务器中所述已发布的业务模块。
5.根据权利要求4所述的程序调用方法,其特征在于,所述调用线路最优的服务器中所述已发布的业务模块,之后,还包括:
若所述已发布的业务模块调用失败,从所述已发布的业务模块所部署的服务器的地址中选择线路次优的服务器的地址;
调用线路次优的服务器中所述已发布的业务模块。
6.一种程序发布装置,其特征在于,包括:
代码获取模块,用于获取程序中待发布的业务模块的代码;所述程序包括具有不同独立功能的多个业务模块;
代码打包模块,用于对所述待发布的业务模块的代码进行打包;
代码发布模块,用于根据输入的待部署的服务器的地址,将打包后的业务模块的代码推送到所述待部署的服务器中进行发布。
7.一种程序调用装置,其特征在于,包括:
请求接收模块,用于接收调用程序中已发布的业务模块的请求;所述业务模块通过权利要求6所述的程序发布装置进行发布;
路由信息获取模块,用于获取所述已发布的业务模块的路由信息;所述路由信息用于指示所述已发布的业务模块所部署的服务器的地址;
地址选择模块,用于从所述已发布的业务模块所部署的服务器的地址中选择线路最优的服务器的地址;
业务模块调用模块,用于调用线路最优的服务器中所述已发布的业务模块。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至3中任意一项所述的程序发布方法,或者权利要求4或5所述的程序调用方法。
9.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至3中任意一项所述的程序发布方法。
10.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求4或5所述的程序调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811625427.5A CN111381812B (zh) | 2018-12-28 | 2018-12-28 | 程序发布方法、调用方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811625427.5A CN111381812B (zh) | 2018-12-28 | 2018-12-28 | 程序发布方法、调用方法、装置、存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111381812A true CN111381812A (zh) | 2020-07-07 |
CN111381812B CN111381812B (zh) | 2023-12-26 |
Family
ID=71216415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811625427.5A Active CN111381812B (zh) | 2018-12-28 | 2018-12-28 | 程序发布方法、调用方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111381812B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111865686A (zh) * | 2020-07-20 | 2020-10-30 | 北京百度网讯科技有限公司 | 云产品扩容方法、装置、设备以及存储介质 |
CN113760316A (zh) * | 2020-10-22 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种应用的配置系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685611A (zh) * | 2013-12-31 | 2014-03-26 | 山石网科通信技术有限公司 | 网络访问处理方法和装置 |
CN106293811A (zh) * | 2016-07-28 | 2017-01-04 | 北京中电普华信息技术有限公司 | 一种自动打包发布方法及装置 |
CN106775730A (zh) * | 2016-12-21 | 2017-05-31 | 深圳Tcl数字技术有限公司 | 程序发布方法及系统 |
CN108897571A (zh) * | 2018-06-29 | 2018-11-27 | 北京金山数字娱乐科技有限公司 | 程序打包部署方法、装置、系统、电子设备及存储介质 |
CN108897548A (zh) * | 2018-06-29 | 2018-11-27 | 北京金山数字娱乐科技有限公司 | 程序包生产部署方法、装置、系统、电子设备及存储介质 |
-
2018
- 2018-12-28 CN CN201811625427.5A patent/CN111381812B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685611A (zh) * | 2013-12-31 | 2014-03-26 | 山石网科通信技术有限公司 | 网络访问处理方法和装置 |
CN106293811A (zh) * | 2016-07-28 | 2017-01-04 | 北京中电普华信息技术有限公司 | 一种自动打包发布方法及装置 |
CN106775730A (zh) * | 2016-12-21 | 2017-05-31 | 深圳Tcl数字技术有限公司 | 程序发布方法及系统 |
CN108897571A (zh) * | 2018-06-29 | 2018-11-27 | 北京金山数字娱乐科技有限公司 | 程序打包部署方法、装置、系统、电子设备及存储介质 |
CN108897548A (zh) * | 2018-06-29 | 2018-11-27 | 北京金山数字娱乐科技有限公司 | 程序包生产部署方法、装置、系统、电子设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111865686A (zh) * | 2020-07-20 | 2020-10-30 | 北京百度网讯科技有限公司 | 云产品扩容方法、装置、设备以及存储介质 |
CN113760316A (zh) * | 2020-10-22 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种应用的配置系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111381812B (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713034B2 (en) | Updating web resources | |
CN109684054B (zh) | 信息处理方法及装置、电子设备及存储器 | |
US8555252B2 (en) | Apparatus and method for loading and updating codes of cluster-based java application system | |
US20070143393A1 (en) | Systems and methods for enhanced message support using a generic client proxy | |
CN104426925B (zh) | 网页资源获取方法及装置 | |
CN103078945B (zh) | 对浏览器崩溃数据进行处理的方法与系统 | |
CN111708557B (zh) | 更新配置文件的方法、设备及存储介质 | |
CN107357890B (zh) | 一种网页文件处理方法、装置及系统和存储设备 | |
JP2015510632A (ja) | クライアント側最少ダウンロードおよびシミュレートされたページ・ナビゲーション機構 | |
CN111381812A (zh) | 程序发布方法、调用方法、装置、存储介质和计算机设备 | |
CN110134489B (zh) | 应用迁移方法及装置、系统、存储介质、应用上云工具 | |
CN112199567A (zh) | 一种分布式数据采集方法、系统、服务器和存储介质 | |
CN106649581B (zh) | 一种网页的修复方法以及客户端 | |
CN116069341A (zh) | 一种应用程序的自动化部署方法、设备及存储介质 | |
CN111190805A (zh) | 深度学习训练平台的训练日志可视化系统、方法及设备 | |
CN110795139A (zh) | 客户端批量打包方法、装置、计算机设备和存储介质 | |
CN110413306A (zh) | Node项目发布方法、装置、电子设备及可读存储介质 | |
CN111382259A (zh) | 一种app崩溃日志的解析方法及装置 | |
CN110196749A (zh) | 虚拟机的恢复方法及装置、存储介质及电子装置 | |
CN108062224A (zh) | 基于文件句柄的数据读写方法、装置及计算设备 | |
CN112416698B (zh) | 监控系统的扩展方法及装置、存储介质及电子设备 | |
CN114356718A (zh) | 日志处理方法、介质、系统和计算设备 | |
CN114020565A (zh) | 日志智能采集处理方法、装置、电子设备及存储介质 | |
CN110445628B (zh) | 基于nginx的服务器及其部署、监控的方法和装置 | |
CN113094211B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |