CN112306811A - 一种php微服务控制方法、***、终端及介质 - Google Patents
一种php微服务控制方法、***、终端及介质 Download PDFInfo
- Publication number
- CN112306811A CN112306811A CN202011251426.6A CN202011251426A CN112306811A CN 112306811 A CN112306811 A CN 112306811A CN 202011251426 A CN202011251426 A CN 202011251426A CN 112306811 A CN112306811 A CN 112306811A
- Authority
- CN
- China
- Prior art keywords
- service
- php
- micro
- log
- memory
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000002085 persistent effect Effects 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims abstract description 10
- 230000002688 persistence Effects 0.000 claims abstract description 9
- 238000012544 monitoring process Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 241000412611 Consul Species 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001502 supplementing effect Effects 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种PHP微服务控制方法、***、终端及介质,该方法通过获取PHP微服务运行过程中产生的工作日志,并将工作日志实时存储入内存,间隔预设时间将内存中的工作日志持久化,并将内存中完成持久化的工作日志清除;本发明还公开了一种PHP微服务控制***、终端及介质,可以解决工作日志实时写入磁盘进行持久化,存储时间较长,拖慢了微服务的工作效率的问题,提升了工作日志存储的效率,以及微服务的工作效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种PHP微服务控制方法、***、终端及介质。
背景技术
随着科学技术的发展,微服务架构的应用越来越广泛。
但微服务架构也面临很多挑战,如由于微服务运行时将产生大量的工作日志,这些工作日志都将实时写入磁盘进行持久化,存储时间较长,拖慢了微服务的工作效率。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种PHP微服务控制方法、***、终端及介质,用于解决工作日志实时写入磁盘进行持久化,存储时间较长,拖慢了微服务的工作效率的问题。
为实现上述目的及其他相关目的,本发明提供了一种PHP微服务控制方法,包括:
获取PHP微服务运行过程中产生的工作日志,并将所述工作日志实时存储入内存;
间隔预设时间将所述内存中的工作日志持久化,并将所述内存中完成持久化的所述工作日志清除。
可选的,还包括:
在所述PHP微服务***关闭之前,持久化所述内存中存在所述工作日志。
可选的,所述将所述工作日志实时存储入内存之后,所述间隔预设时间将所述内存中的工作日志持久化之前,还包括:
获取所述工作日志对应的应用请求信息,根据所述应用请求信息确定所述工作日志的日志标签。
可选的,所述间隔预设时间将所述内存中的工作日志持久化包括:
根据所述日志标签确定日志存储路径;
根据所述日志存储路径将所述工作日志持久化。
可选的,还包括以下至少之一:
获取单位窗口时间内用户请求数量,若所述用户请求数量大于预设数量阈值,控制预设数量阈值个用户请求访问所述PHP微服务;
若所述PHP微服务处于运行状态,监控并上报所述PHP微服务的服务状态;
获取微服务节点的状态信息,若所述状态信息符合预设熔断条件,熔断所述微服务节点的服务调用;
所述PHP微服务的代码包括注解信息,根据所述注解信息构建AOP代理类;
获取用户输入的请求内容,根据所述请求内容在多国语言数据库确定所述请求内容所对应的应用请求。
可选的,若所述PHP微服务控制方法包括获取单位窗口时间内用户请求数量,若所述用户请求数量大于预设数量阈值,控制预设数量阈值个用户请求访问所述PHP微服务,所述控制预设数量阈值个用户请求访问所述微服务***包括:
获取各所述用户请求的优先级并进行排序,确定排名,所述优先级根据所述用户的预设级别、所述用户请求的类别、所述用户请求的访问频次、所述用户的归属地、用户请求的等待时间中至少之一确定;
控制排名在前所述预设数量阈值个的用户请求访问所述PHP微服务。
本发明还提供了一种PHP微服务***,包括:
内存模块,用于获取PHP微服务运行过程中产生的工作日志,并将所述工作日志实时存储入内存;
持久化模块,用于间隔预设时间将所述内存中的工作日志持久化,并将所述内存中完成持久化的所述工作日志清除。
可选的,还包括以下至少之一:
限流模块,用于获取单位窗口时间内用户请求数量,若所述用户请求数量大于预设数量阈值,控制预设数量阈值个用户请求访问所述PHP微服务;
监控模块,用于若所述PHP微服务处于运行状态,监控并上报所述PHP微服务的服务状态;
熔断模块,用于获取微服务节点的状态信息,若所述状态信息符合预设熔断条件,熔断所述微服务节点的服务调用;
AOP代理模块,所述PHP微服务的代码包括注解信息,用于根据所述注解信息构建AOP代理类;
多国语言模块,用于获取用户输入的请求内容,根据所述请求内容在多国语言数据库确定所述请求内容所对应的应用请求。
本发明还提供了一种终端,包括处理器、存储器和通信总线;
所述通信总线用于将所述处理器和存储器连接;
所述处理器用于执行所述存储器中存储的计算机程序,以实现如上述一个或多个实施例所述的PHP微服务控制方法。
本发明还提供了一种计算机可读存储介质,其其上存储有计算机程序,
所述计算机程序用于使所述计算机执行如上述任一项实施例所述的PHP微服务控制方法。
如上所述,本发明提供的一种PHP微服务控制方法、***、终端及介质,具有以下有益效果:
通过获取PHP微服务运行过程中产生的工作日志,并将工作日志实时存储入内存,间隔预设时间将内存中的工作日志持久化,并将内存中完成持久化的工作日志清除。可以解决工作日志实时写入磁盘进行持久化,存储时间较长,拖慢了微服务的工作效率的问题,提升了工作日志存储的效率,以及微服务的工作效率。
附图说明
图1为本发明实施例一提供的PHP微服务控制方法的一种流程示意图;
图2为本发明实施例一提供的应用图1中PHP微服务控制方法的PHP微服务的一种流程示意图;
图3为本发明实施例二提供的PHP微服务***的一种结构示意图;
图4为本发明一实施例提供的终端的一种结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
实施例一
请参阅图1,本发明实施例提供一种PHP微服务控制方法,包括:
S101:获取PHP微服务运行过程中产生的工作日志,并将工作日志实时存储入内存。
可选的,工作日志包括但不限于PHP微服务***应用在接收到任一应用请求时,响应该应用请求,微服务***应用针对应用请求生成的业务日志文件,该业务日志文件包括但不限于请求链路日志。
可选的,该工作日志还被收集到SLS日志管理***,以提供查询和可视化。
可选的,工作日志包括请求链路日志。
可选的,内存为预先设置好的,将工作日志实时存储入内存可以一方面对工作日志有记录,另一方面与直接存储于磁盘等中相比,可以降低存储所需时间,提升PHP微服务工作效率。
可选的,PHP微服务基于Swoole扩展。
S102:间隔预设时间将内存中的工作日志持久化,并将内存中完成持久化的工作日志清除。
可选的,预设时间可以是本领域技术人员根据需要所设定的任一合理时间长度,在此不做限定。
可选的,可以是间隔预设时间将暂存在内存中的工作日志存储入磁盘中。需要说明的是,将工作日志存储入内存与将内存中的工作日志持久化存储可以是并行的两个步骤,也即,以间隔30秒将内存中的工作日志持久化存储为例,一方面进行此前30秒内存储入内存的工作日志的持久化存储,另一方面对于当前实时产生的工作日志,也是实时存储入内存的,两者为独立的程序,这样,存储工作日志实际上所给***带来的响应时间即为写入内存所需要的时间,IO时间大大降低了,提升了PHP微服务的工作效率。
可选的,将完成持久化的工作日志进行清除,可以降低资源占用,减少资源浪费。
可选的,将工作日志实时存储入内存之后,间隔预设时间将内存中的工作日志持久化之前,还包括:
获取工作日志对应的应用请求信息,根据应用请求信息确定工作日志的日志标签。
若工作日志包括业务日志文件、请求链路日志中至少之一,此时,可以通过获取该应用请求信息来确定日志标签,应用请求信息包括但不限于发出该应用请求的用户的用户级别、请求频次、请求类别、用户归属地等中的至少之一。
可选的,基于日志标签可以方便快捷的查找到对应的工作日志。
可选的,间隔预设时间将内存中的工作日志持久化包括:
根据日志标签确定日志存储路径;
根据日志存储路径将工作日志持久化。
可选的,在将内存中的工作日志持久化之前,预设好日志标签与日志存储路径之间的映射对应关系,根据该映射对应关系由日志标签确定日志存储路径,进而将内存中的工作日志存储到日志存储路径对应的磁盘中。
可选的,工作日志持久化包括但不限于将工作日志存储于硬盘或磁盘中。
可选的,PHP微服务控制方法还包括以下至少之一:
在***初始化、拉取Apollo配置后,获取初始日志组件和补充日志组件,将初始日志组件根据预设规则进行适配化处理生成适配日志组件,将适配日志组件和补充日志组件进行封装;
获取单位窗口时间内用户请求数量,若用户请求数量大于预设数量阈值,控制预设数量阈值个用户请求访问PHP微服务;
若PHP微服务处于运行状态,监控并上报PHP微服务的服务状态;
获取微服务节点的状态信息,若状态信息符合预设熔断条件,熔断微服务节点的服务调用;
PHP微服务的代码包括注解信息,根据注解信息构建AOP代理类;
获取用户输入的请求内容,根据请求内容在多国语言数据库确定请求内容所对应的应用请求。
可选的,初始日志组件包括但不限于现有的各种日志组件,由于现有的日志组件并不能符合PHP微服务的需要,故根据当前PHP微服务的整体设计思路确定预设规则,将该初始日志组件根据预设生成修改日志组件,
可选的,补充日志组件包括但不限于日志标签与日志存储路径映射关系处理组件等。
可选的,若对用户请求不加以限制,可能导致微服务流量过大,***过载,甚至导致***崩溃,故可以根据单位窗口时间内用户请求数量来进行限流,保证微服务运行的正常。
需要说明的是,单位窗口时间的长度可以根据需要设置。预设数量阈值也可以由本领域技术人员根据需要进行设置,在此不再限定。预设数量阈值可以看做是微服务***可以接受的最大用户请求量,因此,当用户请求的数量多于预设数量阈值时,也仅允许预设数量阈值个用户请求访问该PHP微服务。
可选的,控制预设数量阈值个用户请求访问微服务***包括:
获取各用户请求的优先级并进行排序,确定排名;
控制排名在前预设数量阈值个的用户请求访问PHP微服务。
在一些实施例中,当用户请求的数量超过微服务所能负担的最大数量时,则需要有选择的允许部分用户请求访问该微服务。此时可以单纯根据用户请求的发生时间来作为确定是否允许访问微服务的依据,例如用户请求发生较早的优先允许访问微服务。
在一些实施例中,对于发出用户请求的各用户预先设置了用户的预设等级,亦可以根据用户的预设级别来确定是否允许访问微服务,例如,用户的预设级别高的优先允许访问微服务。
在一些实施例中,可以根据用户请求的优先级来进行排序,进而选择排名在前预设数量阈值个的用户请求访问微服务。其中,优先级可以根据用户的预设级别、用户请求的类别、用户请求的访问频次、用户的归属地中至少之一确定。当优先级的参数包括两种或两种以上时,可以采用各参数加权平均结果来作为优先级排序的依据。例如根据用户请求的访问频次、用户的归属地来确定优先级,此时预先对各归属地进行赋值得到归属地赋值,分别对用户请求的访问频次、用户的归属地进行权重设置,假设用户请求的访问频次的权重为80%、用户的归属地的权重为20%,此时A用户请求的访问频次20,归属地赋值3,则A用户的加权平均结果为20*80%+3*20%=16.6,B用户请求的访问频次5,归属地赋值8,则A用户的加权平均结果为5*80%+8*20%=5.6,显然,若预设数量阈值为1,此时优先允许A用户请求访问微服务。
在一些实施例中,优先级还根据用户请求的等待时间来确定。可选的,若某一用户请求的等待时间超过等待时间阈值,则优先安排该用户请求访问微服务。可选的,等待时间阈值可以根据历史等待时间来定期更新。该历史等待时间包括发生放弃访问的用户请求的等待时间。
可选的,若PHP微服务处于运行状态,监控并上报PHP微服务的服务状态包括:
若PHP微服务处于运行状态,实时监控并上报PHP微服务的服务状态;
或,
若PHP微服务处于运行状态,实时监控并定期上报PHP微服务的服务状态。
可选的,服务状态上报给Prometheus。
可选的,若服务状态异常时,发出报警信号。该报警信号包括但不限于向预设终端推送提示信息、发出提示音等。
可选的,预设熔断条件包括但不限于微服务节点的响应时间超出预设响应时间、请求外部***失败等。
可选的,熔断微服务节点的服务调用包括但不限于暂停微服务节点的服务。
可选的,当微服务节点的熔点条件解除或微服务节点的暂停服务时长超出预设暂停服务时长时,可以解除对该微服务节点的熔断,恢复该微服务节点的服务。
可选的,微服务节点的熔断可以基于熔断器实现。
可选的,在构建微服务***时,根据需要可以在特定代码设置注解,根据注解信息可以构建AOP代理类。
可选的,通过在PHP微服务中增加多国语言数据库,可以实现该PHP微服务支持多国语言访问。
下面通过一个具体的实施例示例性说明上述PHP微服务控制方法,图2为应用本发明实施例的PHP微服务控制方法的一种PHP微服务的示例,PHP微服务包括全局生命期、会话期(运行期)和服务终止期。参见图2,PHP微服务的示例包括:
S200:开始。
S201:***初始化。
可选的,***初始化包括容器初始化。
S202:拉取Apollo配置。
可选的,Apollo配置模块可以采用开源组件,在此不做限定。
可选的,还设置有Apollo配置管理平台,由Apollo配置管理平台统一管理当框架启动时,从从Apollo中拉取相应环境的配置信息。
S203:初始化日志组件。
可选的,初始化日志组件包括获取初始日志组件和补充日志组件,将初始日志组件根据预设规则进行适配化处理生成适配日志组件,将适配日志组件和补充日志组件进行封装。
初始日志组件包括但不限于现有的各种日志组件,由于现有的日志组件并不能符合PHP微服务的需要,故根据当前PHP微服务的整体设计思路确定预设规则,将该初始日志组件根据预设生成修改日志组件,
可选的,补充日志组件包括但不限于日志标签与日志存储路径映射关系处理组件等。
S204:扫描代码注解信息。
可选的,在创建PHP微服务的代码时,根据一定的规则在特定的代理增加注解,此时通过扫描代理注解信息,可以获取到代码上的注解。
S205:依据注解构建AOP代理类。
可选的,根据上述步骤S204所获取的注解,可以构建AOP(Aspect OrientedProgramming,面向切面编程)代理类。
通过AOP代理类可以实现程序功能统一维护。
S206:执行Bootstraper引导程序钩子。
可选的,基于Bootstraper引导程序钩子可以实现扩展微服务实现的业务,实现业务解耦。
S207:配置Swoole相关回调。
可选的,该步骤的相关方式可以采用现有的相关技术实现,在此不再赘述。
S208:启动服务。
S209:向Consul注册服务。
可选的,该步骤的相关方式可以采用现有的相关技术实现,在此不再赘述。
可选的,向Consul注册服务成功后,PHP微服务进入到运行期。
可选的,当服务启动时,注册服务到服务注册中心,可以提供给其他服务进行服务发现。
S210:用户流量进入。
S211:接收到网络请求。
可选的,该网络请求基于HTTP协议传输。
可选的,该网络请求也即用户请求,包括发送用户请求的用户信息。该用户信息包括但不限于用户的级别、归属地、用户身份识别信息等中至少之一。
S212:路由匹配。
S213:限流。
可选的,获取单位窗口时间内用户请求数量,若用户请求数量大于预设数量阈值,控制预设数量阈值个用户请求访问PHP微服务。
具体的,可以根据用户请求的优先级来进行排序,进而选择排名在前预设数量阈值个的用户请求访问微服务。其中,优先级可以根据用户的预设级别、用户请求的类别、用户请求的访问频次、用户的归属地中至少之一确定。当优先级的参数包括两种或两种以上时,可以采用各参数加权平均结果来作为优先级排序的依据。
可选的,该步骤可以基于限流器实现。
通过限流可以防止***过载。
S214:记录请求链路日志(OpenTracing)。
可选的,工作日志包括请求链路日志。
可选的,记录请求链路日志包括:
获取PHP微服务运行过程中产生的请求链路日志,并将请求链路日志实时存储入内存;
间隔预设时间将内存中的请求链路日志持久化,并将内存中完成持久化的请求链路日志清除。
可选的,该请求链路日志还被收集到SLS日志管理***,以提供查询和可视化。可选的,SLS日志管理***包括阿里云SIS。
可选的,还包括步骤S219:将请求链路日志收集到阿里云SIS。
可选的,内存为预先设置好的。
可选的,预设时间可以是本领域技术人员根据需要所设定的任一合理时间长度,在此不做限定。
可选的,可以是间隔预设时间将暂存在内存中的请求链路日志存储入磁盘中。需要说明的是,将请求链路日志存储入内存与将内存中的工作日志持久化可以是并行的两个步骤,可选的,将完成持久化的工作日志进行清除,可以降低资源占用,减少资源浪费。
可选的,将请求链路日志实时存储入内存之后,间隔预设时间将内存中的请求链路日志持久化之前,还包括:
获取请求链路日志对应的应用请求信息也即网络请求或用户请求的信息,根据应用请求信息确定请求链路日志的日志标签。
应用请求信息包括但不限于发出该应用请求的用户的用户级别、请求频次、请求类别、用户归属地等中的至少之一。
可选的,间隔预设时间将内存中的请求链路日志持久化包括:
根据请求链路标签确定日志存储路径;
根据请求链路存储路径将请求链路日志持久化。
可选的,在将内存中的请求链路日志持久化之前,预设好日志标签与日志存储路径之间的映射对应关系,根据该映射对应关系由日志标签确定日志存储路径,进而将内存中的请求链路日志存储到日志存储路径对应的磁盘中。
S215:访问其他服务。
可选的,用户请求可能包括访问其他微服务的请求,此时可以基于微服务节点访问用户请求所需要访问的其他服务。
可选的,访问其他服务可以基于步骤S220:利用Consul服务发现,来实现。
S216:熔断、降级逻辑。
可选的,可以通过获取微服务节点的状态信息,若状态信息符合预设熔断条件,熔断微服务节点的服务调用。例如,当请求外部***失败时,触发熔断器逻辑,当一段时间后请求恢复,关闭熔断器。
可选的,降级逻辑可以基于现有的降级逻辑方式实现,在此不再赘述。
S217:响应请求。
可选的,响应请求包括响应用户请求。
S218:周期向Prometheus上报服务状态。
可选的,服务状态可以上报到Prometheus监控报警***。
可选的,上报的服务状态可以在Prometheus中进行查看。
S221:若服务状态异常,发出报警。
S222:接收到服务关闭命令。
可选的,接收到服务关闭命令时,PHP微服务进入到服务终止期。
可选的,接收到服务关闭命令之后,关闭服务之前,还包括:
持久化当前内存中存在请求链路日志。
S223:向Consul注销当前服务。
S224:标记服务关闭,拒绝流量。
S225:等待已有请求处理完毕。
S226:关闭服务。
S227:结束。
本发明实施例提供了一种PHP微服务控制方法,通过获取PHP微服务运行过程中产生的工作日志,并将工作日志实时存储入内存,间隔预设时间将内存中的工作日志持久化,并将内存中完成持久化的工作日志清除。可以解决工作日志实时写入磁盘进行持久化,存储时间较长,拖慢了微服务的工作效率的问题,提升了工作日志存储的效率,以及微服务的工作效率。
实施例二
请参阅图3,本发明实施例提供PHP微服务***300,包括:
内存模块301,用于获取PHP微服务运行过程中产生的工作日志,并将工作日志实时存储入内存;
持久化模块302,用于间隔预设时间将内存中的工作日志持久化,并将内存中完成持久化的工作日志清除。
可选的,PHP微服务***还包括以下至少之一:
限流模块,用于获取单位窗口时间内用户请求数量,若用户请求数量大于预设数量阈值,控制预设数量阈值个用户请求访问PHP微服务;
监控模块,用于若PHP微服务处于运行状态,监控并上报PHP微服务的服务状态;
熔断模块,用于获取微服务节点的状态信息,若状态信息符合预设熔断条件,熔断微服务节点的服务调用;
AOP代理模块,PHP微服务的代码包括注解信息,用于根据注解信息构建AOP代理类;
多国语言模块,用于获取用户输入的请求内容,根据请求内容在多国语言数据库确定请求内容所对应的应用请求。
可选的,PHP微服务***还包括链路追踪模块,用于获取响应用户请求的参与服务信息,以及各服务的参与顺序,生成请求链路日志。
可选的,PHP微服务***还包括服务注册与发现模块,用于注册服务以及发现服务。
可选的,本实施例提供的PHP微服务***采用PHP技术栈,对于原有采用单体架构***的用户来说,可以在保留原有PHP技术栈的基础上,利用微服务架构对单体架构中的各业务板块进行分治,以解决单体架构不足以支持多样化的业务需求。耦合度高、可用性低、维护成本高、无法按需伸缩等问题,降低了开发成本。
可选的,本实施例提供的PHP微服务***可以利用EFrame框架实现,可以实现将业务从单体架构迁移到微服务架构,通过服务化拆分、构造易于维护、技术栈不受限、按需伸缩的***架构,同时迁移后仍然保留了原有的PHP技术栈,降低用人成本,同时为各个板块的业务提供了更好地支撑。
可选的,本实施例提供的PHP微服务***基于Swoole扩展,采用常驻内存的模式来运行框架,通过事件模块、链路追踪模块、AOP代理模块、对象池、限流器、熔断模块、降级模块、监控模块、日志组件、多国语言模块、服务注册与发现模块,结合开源技术方案Apollo、Jwt权限认证、Kong、Oss、Mns、K8S、Consul、Prometheus、SLS日志***等中至少之一,进而实现服务治理、限流&熔断、统一配置管理、统一网关、***监控。因此本方案可以形成基于PHP技术栈的整套微服务解决方案。
在本实施例中,该PHP微服务***实质上是设置了多个模块用以执行上述实施例一的PHP微服务控制方法,具体功能和技术效果参照上述实施例一即可,此处不再赘述。
参见图4,本发明实施例还提供了一种终端400,包括处理器401、存储器402和通信总线403;
所述通信总线403用于将所述处理器401和存储器连接402;
所述处理器401用于执行所述存储器402中存储的计算机程序,以实现如上述实施例一中的一个或多个所述的PHP微服务控制方法。
本发明实施例还提供了一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序用于使所述计算机执行如上述实施例一中的任一项所述的PHP微服务控制方法。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例的实施例一所包含步骤的指令(instructions)。
需要说明的是,本发明公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明公开各种实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种PHP微服务控制方法,其特征在于,包括:
获取PHP微服务运行过程中产生的工作日志,并将所述工作日志实时存储入内存;
间隔预设时间将所述内存中的工作日志持久化,并将所述内存中完成持久化的所述工作日志清除。
2.根据权利要求1所述的PHP微服务控制方法,其特征在于,还包括:
在所述PHP微服务***关闭之前,持久化所述内存中存在所述工作日志。
3.根据权利要求1所述的PHP微服务控制方法,其特征在于,所述将所述工作日志实时存储入内存之后,所述间隔预设时间将所述内存中的工作日志持久化之前,还包括:
获取所述工作日志对应的应用请求信息,根据所述应用请求信息确定所述工作日志的日志标签。
4.根据权利要求3所述的PHP微服务控制方法,其特征在于,所述间隔预设时间将所述内存中的工作日志持久化包括:
根据所述日志标签确定日志存储路径;
根据所述日志存储路径将所述工作日志持久化。
5.根据权利要求1-4任一项所述的PHP微服务控制方法,其特征在于,还包括以下至少之一:
获取单位窗口时间内用户请求数量,若所述用户请求数量大于预设数量阈值,控制预设数量阈值个用户请求访问所述PHP微服务;
若所述PHP微服务处于运行状态,监控并上报所述PHP微服务的服务状态;
获取微服务节点的状态信息,若所述状态信息符合预设熔断条件,熔断所述微服务节点的服务调用;
所述PHP微服务的代码包括注解信息,根据所述注解信息构建AOP代理类;
获取用户输入的请求内容,根据所述请求内容在多国语言数据库确定所述请求内容所对应的应用请求。
6.根据权利要求5所述的PHP微服务控制方法,其特征在于,若所述PHP微服务控制方法包括获取单位窗口时间内用户请求数量,若所述用户请求数量大于预设数量阈值,控制预设数量阈值个用户请求访问所述PHP微服务,所述控制预设数量阈值个用户请求访问所述微服务***包括:
获取各所述用户请求的优先级并进行排序,确定排名,所述优先级根据所述用户的预设级别、所述用户请求的类别、所述用户请求的访问频次、所述用户的归属地、用户请求的等待时间中至少之一确定;
控制排名在前所述预设数量阈值个的用户请求访问所述PHP微服务。
7.一种PHP微服务***,其特征在于,包括:
内存模块,用于获取PHP微服务运行过程中产生的工作日志,并将所述工作日志实时存储入内存;
持久化模块,用于间隔预设时间将所述内存中的工作日志持久化,并将所述内存中完成持久化的所述工作日志清除。
8.根据权利要求7所述的PHP微服务***,其特征在于,还包括以下至少之一:
限流模块,用于获取单位窗口时间内用户请求数量,若所述用户请求数量大于预设数量阈值,控制预设数量阈值个用户请求访问所述PHP微服务;
监控模块,用于若所述PHP微服务处于运行状态,监控并上报所述PHP微服务的服务状态;
熔断模块,用于获取微服务节点的状态信息,若所述状态信息符合预设熔断条件,熔断所述微服务节点的服务调用;
AOP代理模块,所述PHP微服务的代码包括注解信息,用于根据所述注解信息构建AOP代理类;
多国语言模块,用于获取用户输入的请求内容,根据所述请求内容在多国语言数据库确定所述请求内容所对应的应用请求。
9.一种终端,其特征在于,包括处理器、存储器和通信总线;
所述通信总线用于将所述处理器和存储器连接;
所述处理器用于执行所述存储器中存储的计算机程序,以实现如权利要求1-6中一个或多个所述的PHP微服务控制方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,
所述计算机程序用于使所述计算机执行如权利要求1-6中任一项所述的PHP微服务控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011251426.6A CN112306811A (zh) | 2020-11-09 | 2020-11-09 | 一种php微服务控制方法、***、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011251426.6A CN112306811A (zh) | 2020-11-09 | 2020-11-09 | 一种php微服务控制方法、***、终端及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306811A true CN112306811A (zh) | 2021-02-02 |
Family
ID=74325692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011251426.6A Pending CN112306811A (zh) | 2020-11-09 | 2020-11-09 | 一种php微服务控制方法、***、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306811A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112906009A (zh) * | 2021-03-09 | 2021-06-04 | 南昌华勤电子科技有限公司 | 工作日志生成方法、计算设备及存储介质 |
CN113849126A (zh) * | 2021-09-01 | 2021-12-28 | 北京腾凌科技有限公司 | 一种日志存储方法及装置 |
WO2023116827A1 (zh) * | 2021-12-23 | 2023-06-29 | 深圳市世强元件网络有限公司 | 高并发存储数据的方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128470A1 (en) * | 2002-12-27 | 2004-07-01 | Hetzler Steven Robert | Log-structured write cache for data storage devices and systems |
CN106850782A (zh) * | 2017-01-17 | 2017-06-13 | 泰康保险集团股份有限公司 | 用于日志处理的方法和*** |
CN107919987A (zh) * | 2017-11-16 | 2018-04-17 | 国云科技股份有限公司 | 一种微服务云部署的实现方法 |
CN108847989A (zh) * | 2018-06-29 | 2018-11-20 | 杭州安恒信息技术股份有限公司 | 基于微服务架构的日志处理方法、业务服务***以及电子设备 |
CN109408207A (zh) * | 2018-09-20 | 2019-03-01 | 北京小米移动软件有限公司 | 微服务访问控制方法、装置及存储介质 |
CN109446174A (zh) * | 2018-10-30 | 2019-03-08 | 东软集团股份有限公司 | 日志数据记录方法、装置及计算机可读存储介质 |
-
2020
- 2020-11-09 CN CN202011251426.6A patent/CN112306811A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128470A1 (en) * | 2002-12-27 | 2004-07-01 | Hetzler Steven Robert | Log-structured write cache for data storage devices and systems |
CN106850782A (zh) * | 2017-01-17 | 2017-06-13 | 泰康保险集团股份有限公司 | 用于日志处理的方法和*** |
CN107919987A (zh) * | 2017-11-16 | 2018-04-17 | 国云科技股份有限公司 | 一种微服务云部署的实现方法 |
CN108847989A (zh) * | 2018-06-29 | 2018-11-20 | 杭州安恒信息技术股份有限公司 | 基于微服务架构的日志处理方法、业务服务***以及电子设备 |
CN109408207A (zh) * | 2018-09-20 | 2019-03-01 | 北京小米移动软件有限公司 | 微服务访问控制方法、装置及存储介质 |
CN109446174A (zh) * | 2018-10-30 | 2019-03-08 | 东软集团股份有限公司 | 日志数据记录方法、装置及计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112906009A (zh) * | 2021-03-09 | 2021-06-04 | 南昌华勤电子科技有限公司 | 工作日志生成方法、计算设备及存储介质 |
CN113849126A (zh) * | 2021-09-01 | 2021-12-28 | 北京腾凌科技有限公司 | 一种日志存储方法及装置 |
WO2023116827A1 (zh) * | 2021-12-23 | 2023-06-29 | 深圳市世强元件网络有限公司 | 高并发存储数据的方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112306811A (zh) | 一种php微服务控制方法、***、终端及介质 | |
CN107590001B (zh) | 负载均衡方法及装置、存储介质、电子设备 | |
EP3418877A1 (en) | Data writing and reading method and apparatus, and cloud storage system | |
JP5635763B2 (ja) | 分散データ・レプリカを利用する情報サービスのデータ保全性及びデータ精度を管理するための方法、装置及びコンピュータ・プログラム | |
CN112261172B (zh) | 服务寻址访问方法、装置、***、设备及介质 | |
CN104079630A (zh) | 一种业务服务端负载均衡方法、客户端、服务端以及*** | |
CN109842694B (zh) | 一种同步mac地址的方法、网络设备和计算机可读存储介质 | |
US10425475B2 (en) | Distributed data management | |
CN111258627A (zh) | 一种接口文档生成方法和装置 | |
CN112565334B (zh) | 物联网设备的接入方法、装置及mqtt网关 | |
US20200327001A1 (en) | Message processing method and system, storage medium and electronic device | |
CN110321252B (zh) | 一种技能服务资源调度的方法和装置 | |
CN112395107A (zh) | 税控设备控制的方法、装置、存储介质及电子设备 | |
CN115803714A (zh) | 使用多接入边缘计算来分派任务和数据 | |
CN109428926B (zh) | 一种调度任务节点的方法和装置 | |
CN113177179B (zh) | 数据请求连接管理方法、装置、设备及存储介质 | |
CN114327710A (zh) | 一种函数管理方法、管理装置、终端设备及可读存储介质 | |
CN112148320A (zh) | 一种应用程序升级方法、装置、设备及存储介质 | |
JP5348907B2 (ja) | サービス監視システムおよび方法 | |
CN111091899B (zh) | 权限分配方法及装置、电子设备和计算机可读存储介质 | |
CN112994942A (zh) | 一种sdn控制方法及装置 | |
CN113765871A (zh) | 堡垒机管理的方法和装置 | |
KR101146742B1 (ko) | SaaS의 분산된 세션 관리 방법 및 그 관리 시스템 | |
CN111400060A (zh) | 设备联动方法、装置、服务器和介质 | |
CN113032576B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210202 |