CN115794928A - 超文本请求处理方法、装置、计算机设备和存储介质 - Google Patents
超文本请求处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115794928A CN115794928A CN202310053102.9A CN202310053102A CN115794928A CN 115794928 A CN115794928 A CN 115794928A CN 202310053102 A CN202310053102 A CN 202310053102A CN 115794928 A CN115794928 A CN 115794928A
- Authority
- CN
- China
- Prior art keywords
- read
- database
- write
- tag
- hypertext request
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000000926 separation method Methods 0.000 claims abstract description 149
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种超文本请求处理方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:接收超文本请求;获取超文本请求所指示的资源地址,获取针对资源地址预配置的读写分离配置标签;当读写分离配置标签为写入标签,基于主数据库响应超文本请求;当读写分离配置标签为只读标签,基于备数据库响应超文本请求;备数据库用于从主数据库同步数据;当读写分离配置标签为读写标签,基于主数据库响应超文本请求。采用本方法能够减轻数据库压力,适应更多的数据库服务场景。
Description
技术领域
本申请涉及计算机网络技术领域,特别是涉及一种超文本请求处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机网络技术的发展,出现了HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)。HTTP协议用于客户端与服务端之间的通信,指定了客户端可能发送给服务器的消息以及得到的服务器的响应。服务器可响应用户通过客户端发送的HTTP请求(超文本请求),从本地文件***、数据库等位置确定HTTP请求指示的资源,从而按照HTTP请求进行处理资源,并将处理结果返回客户端。服务器访问数据库时,通常会对数据库进行读操作或写操作。当服务器接收的多个HTTP请求指示的资源存在于同一个数据库,且多个HTTP请求指示的操作包括读操作和写操作时,服务器将在该数据库进行读操作和写操作。
然而,在互联网中,对数据库的读操作多于写操作,而写操作耗时比读操作长,读操作和写操作在同一个数据库中进行时将互相影响,造成阻塞,大大增加了数据库的压力。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减轻数据库的压力的超文本请求处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种超文本请求处理方法。所述方法包括:
接收超文本请求;
获取所述超文本请求所指示的资源地址,获取针对所述资源地址预配置的读写分离配置标签;
当所述读写分离配置标签为写入标签,基于主数据库响应所述超文本请求;
当所述读写分离配置标签为只读标签,基于备数据库响应所述超文本请求;所述备数据库用于从所述主数据库同步数据;
当所述读写分离配置标签为读写标签,基于所述主数据库响应所述超文本请求。
在其中一个实施例中,所述获取所述超文本请求所指示的资源地址,获取针对所述资源地址预配置的读写分离配置标签,包括:
通过控制器处理所述超文本请求,获取到所述超文本请求所指示的资源地址,并从读写分离配置标签存储区读取针对所述资源地址预配置的读写分离配置标签;或,
通过控制器处理所述超文本请求,获取到所述超文本请求所指示的资源地址,并调用所述控制器封装的标签接口,通过所述标签接口从所述控制器的注解中读取针对所述资源地址预配置的读写分离配置标签。
在其中一个实施例中,所述当所述读写分离配置标签为写入标签,基于主数据库响应所述超文本请求,包括:
当所述读写分离配置标签为写入标签,按照所述超文本请求指示主数据库启动数据库事务,指示所述主数据库执行写操作,完成所述写操作后完成所述数据库事务。
在其中一个实施例中,所述当所述读写分离配置标签为写入标签,按照所述超文本请求指示主数据库启动数据库事务,指示所述主数据库执行写操作,完成所述写操作后完成所述数据库事务,包括:
当所述读写分离配置标签为写入标签,由控制器按照所述超文本请求通知代理器;
由所述代理器指示主数据库启动数据库事务,并按照所述超文本请求调用业务接口;
通过所述业务接口指示所述主数据库执行写操作;
当调用所述业务接口结束,由所述代理器指示所述主数据库完成所述数据库事务。
在其中一个实施例中,所述当所述读写分离配置标签为只读标签,基于备数据库响应所述超文本请求,包括:
当所述读写分离配置标签为只读标签,按照所述超文本请求确定备数据源,跳过数据库事务的启动,按照所述超文本请求调用业务接口,通过所述业务接口指示所述备数据源所指向的备数据库执行读操作。
在其中一个实施例中,所述当所述读写分离配置标签为读写标签,基于所述主数据库响应所述超文本请求,包括:
当所述读写分离配置标签为读写标签,按照所述超文本请求确定主数据源,跳过数据库事务的启动,按照所述超文本请求调用业务接口,通过所述业务接口指示所述主数据源所指向的主数据库执行读操作或写操作。
第二方面,本申请还提供了一种超文本请求处理装置。所述装置包括:
控制器,用于接收超文本请求;获取所述超文本请求所指示的资源地址,获取针对所述资源地址预配置的读写分离配置标签;
代理器,用于当所述读写分离配置标签为写入标签,基于主数据库响应所述超文本请求;当所述读写分离配置标签为只读标签,基于备数据库响应所述超文本请求;所述备数据库用于从所述主数据库同步数据;当所述读写分离配置标签为读写标签,基于所述主数据库响应所述超文本请求。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收超文本请求;
获取所述超文本请求所指示的资源地址,获取针对所述资源地址预配置的读写分离配置标签;
当所述读写分离配置标签为写入标签,基于主数据库响应所述超文本请求;
当所述读写分离配置标签为只读标签,基于备数据库响应所述超文本请求;所述备数据库用于从所述主数据库同步数据;
当所述读写分离配置标签为读写标签,基于所述主数据库响应所述超文本请求。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收超文本请求;
获取所述超文本请求所指示的资源地址,获取针对所述资源地址预配置的读写分离配置标签;
当所述读写分离配置标签为写入标签,基于主数据库响应所述超文本请求;
当所述读写分离配置标签为只读标签,基于备数据库响应所述超文本请求;所述备数据库用于从所述主数据库同步数据;
当所述读写分离配置标签为读写标签,基于所述主数据库响应所述超文本请求。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收超文本请求;
获取所述超文本请求所指示的资源地址,获取针对所述资源地址预配置的读写分离配置标签;
当所述读写分离配置标签为写入标签,基于主数据库响应所述超文本请求;
当所述读写分离配置标签为只读标签,基于备数据库响应所述超文本请求;所述备数据库用于从所述主数据库同步数据;
当所述读写分离配置标签为读写标签,基于所述主数据库响应所述超文本请求。
上述超文本请求处理方法、装置、计算机设备、存储介质和计算机程序产品,通过资源地址预配置的读写分离配置标签,使得写入标签的资源地址对应的超文本请求通过主数据库响应,只读标签的资源地址对应的超文本请求通过备数据库响应,实现了数据库的分流,减轻了主数据库的压力;而且,还通过主数据库响应读写标签的资源地址对应的超文本请求,通过主数据库响应更多类型的超文本请求,通过不同读写分离配置标签的组合,能够灵活地处理不同类型的超文本请求,适应更多的数据库服务场景,适应能力强。
附图说明
图1为一个实施例中超文本请求处理方法的应用环境图;
图2为一个实施例中超文本请求处理方法的流程示意图;
图3为一个实施例中超文本请求处理步骤的流程示意图;
图4为一个实施例中超文本请求处理时序示意图;
图5为一个实施例中超文本请求处理装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的超文本请求处理方法,可以应用于如图1所示的应用环境中。其中,终端102上可运行客户端,服务器104上可运行服务端,终端102上的客户端可通过网络与服务器104上的服务端进行通信。服务器104上的服务端可分别与主数据库106和备数据库108进行通信,主数据库106可定期或在主数据库所存储数据发生变化时将数据同步至备数据库108。其中,终端102可以是各种台式计算机、笔记本电脑、智能手机或平板电脑。终端102上的客户端可以是专门运行一种应用程序的应用客户端,也可以是可运行多种应用程序的浏览器客户端。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器104可以是应用服务器,也可以是Web服务器(万维网服务器)。应用客户端可与应用服务器的服务端通信,浏览器客户端可与Web服务器的服务端通信。主数据库106和备数据库108可以配置在服务器104上,也可以用服务器104之外的数据服务器实现,主数据库106和备数据库108可以在不同的数据服务器上,也可以在同一数据服务器上。
基于图1的应用环境,服务器104可接收终端102发送的超文本请求,服务器104可获取超文本请求所指示的资源地址,获取针对资源地址预配置的读写分离配置标签;当读写分离配置标签为写入标签或读写标签,服务器104可基于主数据库106响应超文本请求;当读写分离配置标签为只读标签,服务器104可基于备数据库108响应超文本请求。
在一个实施例中,如图2所示,提供了一种超文本请求方法,本实施例以该方法应用于图1中的服务器104为例进行说明,该方法包括以下步骤:
步骤202,接收超文本请求。
其中,超文本请求是基于超文本传输协议(HTTP,Hyper Text TransferProtocol)的网络请求。超文本请求是通过运行在终端上的客户端向服务器的服务端发出的网络请求。
在一个实施例中,服务器可建立与终端之间的连接通道,通过该连接通道接收终端发送的请求数据包形式的超文本请求。其中,请求数据包的结构是超文本传输协议定义的请求结构。该请求数据包可包括请求操作、请求的资源地址等。请求操作可以是请求获取特定资源,可以是请求向指定资源提交数据进行处理,可以是请求向指定资源位置上传最新内容,或请求其它操作。
在一个实施例中,服务器可在接收到终端发送的连接请求后,向终端发送服务器的确认信息,在接收到终端返回的确认信息后,成功建立与终端的连接通道。
步骤204,获取超文本请求所指示的资源地址,获取针对资源地址预配置的读写分离配置标签。
其中,资源地址是用于标识资源在网络上的位置的信息。资源地址可以是统一资源定位符(URL,Uniform Resource Locator)。读写分离配置标签是用于区分对资源地址相应资源进行的操作而配置的标签。预配置的读写分离配置标签是预先配置的读写分离配置标签。
在一个实施例中,服务器可从超文本请求的请求数据包中获取资源地址,从记录了资源地址与读写分离配置标签之间对应关系的查询表中,查询针对资源地址预配置的读写分离配置标签。
步骤206,当读写分离配置标签为写入标签,基于主数据库响应超文本请求。
其中,写入标签是读写分离配置标签中指示对主数据库中的数据进行写入操作的标识。数据库是按照数据结构存储和管理数据的计算机软件***。主数据库是作为主角色的数据库。主数据库可将数据同步至作为主数据库的备份的备数据库。
在一个实施例中,当读写分离配置标签为写入标签,服务器可按照超文本请求确定主数据源,按照超文本请求指示主数据源所指向的主数据库执行写操作。
在一个实施例中,当读写分离配置标签为写入标签,服务器可按照超文本请求指示主数据库启动数据库事务,在主数据库启动数据库事务后,服务器可按照超文本请求指示主数据库执行写操作,在写操作完成后服务器指示主数据库提交数据库事务。
在一个实施例中,当读写分离配置标签为写入标签,服务器可按照超文本请求调用业务接口,通过业务接口按照超文本请求指示主数据库执行写操作。
步骤208,当读写分离配置标签为只读标签,基于备数据库响应超文本请求;备数据库用于从主数据库同步数据。
其中,只读标签是读写分离配置标签中指示对备数据库中的数据进行只读操作的标识。备数据库是作为备角色的数据库。备数据库是作为主数据的备份的数据库。当主数据库中的数据发生更新,可实时地同步至备数据库。
在一个实施例中,当读写分离配置标签为只读标签,服务器可按照超文本请求确定备数据源,按照超文本请求指示备数据源所指向的备数据库执行读操作。
在一个实施例中,当读写分离配置标签为只读标签,服务器可按照超文本请求调用业务接口,通过业务接口按照超文本请求指示备数据库执行读操作。
步骤210,当读写分离配置标签为读写标签,基于主数据库响应超文本请求。
其中,读写标签是读写分离配置标签中指示对主数据库中的数据进行读操作或写操作的标识。
在一个实施例中,当读写分离配置标签为读写标签,服务器可按照超文本请求确定主数据源,按照超文本请求指示主数据源所指向的主数据库执行写操作或读操作。
在一个实施例中,当读写分离配置标签为读写标签,服务器可按照超文本请求调用业务接口,通过业务接口按照超文本请求指示主数据库执行写操作或读操作。若超文本请求指示进行写操作,则主数据库可作出响应,进行主数据库执行该超文本请求所指示的写操作;若超文本请求指示进行读操作,则主数据库可作出响应,进行主数据库执行该超文本请求所指示的读操作。
在一个实施例中,针对终端上同一客户端界面上触发的超文本请求,可以由一个或多个主数据库进行响应,也可以由一个或多个备数据库响应。当存在多个主数据库时,同一客户端界面上触发的每种超文本请求可以配置进行响应的主数据库。一个主数据库可以同步数据至多个备数据库,且不同备数据库中同步的数据不同。
上述超文本请求处理方法中,通过资源地址预配置的读写分离配置标签,使得写入标签的资源地址对应的超文本请求通过主数据库响应,只读标签的资源地址对应的超文本请求通过备数据库响应,实现了数据库的分流,减轻了主数据库的压力;而且,还通过主数据库响应读写标签的资源地址对应的超文本请求,通过主数据库响应更多类型的超文本请求,通过不同读写分离配置标签的组合,能够灵活地处理不同类型的超文本请求,适应更多的数据库服务场景,适应能力强。
在一个实施例中,步骤204包括:通过控制器处理超文本请求,获取到超文本请求所指示的资源地址,并从读写分离配置标签存储区读取针对资源地址预配置的读写分离配置标签。
其中,控制器是服务器上的计算机程序模块,负责接收终端发出的超文本请求,并向终端反馈针对该超文本请求的响应数据。读写分离配置标签存储区是存放了资源地址与预配置的读写分离配置标签的映射关系的存储区域。
具体地,服务器上的控制器可解析超文本请求的请求数据包,从请求数据包中解析出超文本请求所指示的资源地址,凭借资源地址从读写分离配置标签存储区中查询针对资源地址预配置的读写分离配置标签,当查询到针对资源地址预配置的读写分离配置标签,读取针对资源地址预配置的读写分离配置标签。
本实施例中,通过控制器从读写分离配置标签存储区读取针对资源地址预配置的读写分离配置标签,并进行后续的处理,终端并不直接获得读写分离配置标签,保证了安全性。而且通过读写分离配置标签存储区存储读写分离配置标签,便于读写分离配置标签的配置和集中管理。
在一个实施例中,步骤204包括:通过控制器处理超文本请求,获取到超文本请求所指示的资源地址,并调用控制器封装的标签接口,通过标签接口从控制器的注解中读取针对资源地址预配置的读写分离配置标签。
其中,接口是不同程序模块之间的通信通道。标签接口是用于读取读写分离配置标签的程序模块的接口。控制器的注解是控制器中记载了资源地址与读写分离配置标签的映射关系的计算机程序代码。
本实施例中,控制器封装的标签接口,通过标签接口从控制器的注解中读取针对资源地址预配置的读写分离配置标签,安全性高。
在一个实施例中,步骤206包括:当读写分离配置标签为写入标签,按照超文本请求指示主数据库启动数据库事务,指示主数据库执行写操作,完成写操作后完成数据库事务。
其中,数据库事务是逻辑上的一组数据库操作序列。数据库事务具有原子性,即数据库事务所指示的一系列数据库操作要么全部都执行,要么全部都不执行。写操作是新增、修改或删除数据的操作。写入标签可以是专门针对实现特定写数据业务的超文本请求指示的资源地址预先配置的标识。写数据业务是任意需要向数据库写入数据的业务。特定写数据业务可以是需要执行多次写操作的业务,例如提交新增的单据。
举例说明,终端发送的超文本请求可以是提交单据,此时,需将单据中新增的多个数据写入数据库,数据库事务中的一系列写操作是将单据中新增的多个数据写入数据库中,当新增的多个数据都成功写入数据库后,即数据库事务所指示的一系列数据库操作全部都执行。
在一个实施例中,当读写分离配置标签为写入标签,服务器可按照超文本请求获取主数据源,连接主数据源所指向的主数据库,按照超文本请求指示主数据库启动数据库事务,指示主数据库执行数据库事务中的写操作,完成写操作后,提交数据库事务。
在一个实施例中,服务器上的代理器可在服务器上的控制器获取到针对资源地址预配置的读写分离配置标签后,从控制器获取该读写分离配置标签;当该读写分离配置标签为写入标签,代理器可按照超文本请求指示主数据库启动数据库事务,在主数据库完成写操作后,代理器指示主数据库提交数据库事务。
在一个实施例中,服务器上的代理器可按照超文本请求指示主数据库启动数据事务,指示主数据库执行写操作,在主数据库执行完写操作后,由主数据库自动提交数据库事务。
本实施例中,通过读写分离配置标签指示数据库事务的启动与否,当读写分离配置标签为写入标签,主数据库启动数据库事务,在执行完写操作后完成数据库事务,可保证执行超文本请求指示的操作时具有原子性,避免了超文本请求同时提交的数据写入主数据库时出现不一致,防止出错。
在一个实施例中,当读写分离配置标签为写入标签,按照超文本请求指示主数据库启动数据库事务,指示主数据库执行写操作,完成写操作后完成数据库事务的步骤包括:当读写分离配置标签为写入标签,由控制器按照超文本请求通知代理器;由代理器指示主数据库启动数据库事务,并按照超文本请求调用业务接口;通过业务接口指示主数据库执行写操作;当调用业务接口结束,由代理器指示主数据库完成数据库事务。
其中,代理器是按照控制器解析的超文本请求连接数据库并处理数据的计算机程序模块。业务接口是按业务逻辑对数据进行处理的程序模块的接口。
在一个实施例中,当读写分离配置标签为写入标签,服务器上的控制器可调用服务器上的代理器的接口,通过代理器的接口,向代理器传递资源地址、资源地址的写入标签,并通知代理器按照超文本请求进行处理,以使控制器从代理器获得处理结果,基于处理结果确定发送到终端的超文本请求的响应数据。
在一个实施例中,服务器上的代理器指示主数据库启动数据库事务后,当通过业务接口指示主数据库执行写操作时执行失败,代理器指示主数据库执行回滚,将通过业务接口指示主数据库执行的写操作所写入的数据恢复到数据库事务启动前的状态。
在一个实施例中,服务器上的代理器指示主数据库完成数据库事务后,从主数据库获取数据库事务处理的数据结果,将数据结果返回控制器,控制器基于数据结果确定超文本请求的响应数据,并将响应数据发送到终端。
本实施例中,当读写分离配置标签为写入标签,通过代理器与主数据库通信,实现数据库事务的开启;代理器通过业务接口,实现在主数据库中执行写操作,在数据库事务的基础上,可以防止对超文本请求的处理出错,可保证服务器响应超文本请求返回准确的结果。
在一个实施例中,步骤208中当读写分离配置标签为只读标签,基于备数据库响应超文本请求的步骤包括:当读写分离配置标签为只读标签,按照超文本请求确定备数据源,跳过数据库事务的启动,按照超文本请求调用业务接口,通过业务接口指示备数据源所指向的备数据库执行读操作。
其中,数据源是指示了连接的数据库以及连接数据库的路径的信息。数据源可存在于数据源组件中。数据源组件是管理数据源的程序模块。备数据源是可连接至备数据库的数据源。读操作是从数据库中读取数据的操作。只读标签可以是专门针对实现特定读数据业务的超文本请求指示的资源地址预先配置的标识。读数据业务是任意需要从数据库读取数据的业务。特定读数据业务可以是需要读取的数据量较大的业务,如单据列表查询业务,表单查询业务或报表读取业务等。
在一个实施例中,当读写分离配置标签为只读标签,服务器上的代理器可按照超文本请求确定备数据源,连接备数据源所指向的备数据库,在与备数据库连接成功后,跳过数据库事务的启动,按照超文本请求调用业务接口,通过业务接口指示备数据库执行读操作,获取读操作读取的数据。
本实施例中,当读写分离配置标签为只读标签时,通过代理器连接备数据库,调用业务接口在备数据库中执行读操作,实现从备数据库中读取数据,使得备数据库可分担主数据库的数据处理压力,而且备数据库不执行写操作仅执行读操作,操作类型单一,避免了备数据库出现阻塞,提高了备数据库的处理能力;而且,无需启动数据库事务,节约备数据库处理数据库事务的资源消耗,进而提高备数据库读取数据的效率。
在一个实施例中,步骤210包括:当读写分离配置标签为读写标签,按照超文本请求确定主数据源,跳过数据库事务的启动,按照超文本请求调用业务接口,通过业务接口指示主数据源所指向的主数据库执行读操作或写操作。
其中,主数据源是可连接至主数据库的数据源。读写标签可以是针对配置了写入标签或只读标签之外的资源地址预配置的标签。在一个实施例中,同一个客户端界面中触发的不同超文本请求,所指示的资源地址可以分别配置不同的读写分离配置标签。在一个具体场景中,同一个客户端界面中触发的写入数据的超文本请求和读取写入的该数据的超文本请求,所指示的资源地址分别配置了写入标签和读写标签,从而基于主数据库响应这两个超文本请求,相比分别由主数据库和备数据库响应的情形,避免了主数据库和备数据库同步不及时导致读取出错的情况。
在一个实施例中,当读写分离配置标签为读写标签,服务器上的代理器可按照超文本请求确定主数据源,连接主数据源所指向的主数据库,在与主数据库连接成功后,跳过数据库事务的启动,按照超文本请求调用业务接口,通过业务接口指示主数据库执行读操作或写操作。
在一个实施例中,当超文本请求指示的数据库操作为写操作,服务器上的代理器可按照超文本请求调用业务接口,当业务接口所指向的业务模块中存在数据库事务标识,通过业务接口指示主数据库启动数据库事务,通过业务接口指示主数据库执行写操作,当完成写操作,通过业务接口指示主数据完成数据库事务。
本实施例中,当读写分离配置标签为读写标签,代理器通过业务接口指示主数据库执行读操作或写操作,可灵活地通过主数据库处理各种超文本请求,适应更多场景;而且在主数据库执行读操作时,可以读取到最新的数据,避免因主数据库与备数据库同步延迟导致的读取的数据不是最新数据的情况。
在一个实施例中,在一个具体的应用场景中,终端上可运行浏览器客户端,服务器可以是Web服务器,Web服务器可接收终端通过浏览器客户端发送的超文本请求,资源地址可以是URL。如图3超文本请求处理步骤的流程示意图以及图4超文本请求处理时序示意图所示,上述超文本请求处理方法的具体步骤包括:
Web服务器上的控制器可接收浏览器客户端发送的超文本请求,解析超文本请求,获取超文本请求所指示的资源地址,并从读写分离配置标签存储区读取针对资源地址预配置的读写分离配置标签,调用Web服务器上的代理器接口,通过代理器接口通知代理器处理超文本请求。其中,读写分离配置标签可包括写入标签、只读标签和读写标签,写入标签可表示为Tx,只读标签可表示为Readnoly,读写标签可表示为Default。
当读写分离配置标签为写入标签,Web服务器上的控制器可调用代理器接口(含事务调用代理器接口)。Web代理器可按照超文本请求获取主数据源标识信息,按照主数据源标识信息确定主数据源,连接主数据源所指向的主数据库,按照超文本请求指示主数据库启动数据库事务,按照超文本请求调用业务接口,通过业务接口指示主数据库执行写操作,当完成写操作,结束调用业务接口,指示主数据库完成数据库事务。
当读写分离配置标签为只读标签,Web服务器上的控制器可调用代理器接口(不含事务调用代理器接口)。Web服务器上的代理器可按照超文本请求获取备数据源标识信息,按照备数据源标识信息确定备数据源,连接备数据源所指向的备数据库,在与备数据库连接成功后,按照超文本请求调用业务接口,通过业务接口指示备数据库执行读操作。
当读写分离配置标签为读写标签,Web服务器上的控制器可调用代理器接口(不含事务调用代理器接口)。Web服务器上的代理器可按照超文本请求获取主数据源标识信息,按照主数据源标识信息确定主数据源,连接主数据源所指向的主数据库,在与主数据库连接成功后,按照超文本请求调用业务接口,通过业务接口指示主数据库执行读操作或写操作。
读写分离配置标签还可以包括报表标签,当读写分类配置标签为报表标签,Web服务器上的代理器可按照超文本请求确定报表备数据源,连接报表备数据源所指向的报表备数据库,在与报表备数据库连接成功后,按照超文本请求调用业务接口,通过业务接口指示报表备数据库执行读操作。其中,报表备数据库是作为主数据库的备份的数据库,报表备数据库从主数据库同步数据。
当Web服务器通过业务接口指示主数据库、备数据库或报表备数据库按照超文本请求完成相应的操作,并获得数据结果,将数据结果返回给控制器,由控制器根据数据结果确定超文本请求的响应数据,将响应数据发送到终端上的浏览器客户端。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的超文本请求处理方法的超文本请求处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个超文本请求处理装置实施例中的具体限定可以参见上文中对于超文本请求处理方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种超文本请求处理装置500,包括:控制器510和代理器520,其中:
控制器510,用于接收超文本请求;获取超文本请求所指示的资源地址,获取针对资源地址预配置的读写分离配置标签;
代理器520,用于当读写分离配置标签为写入标签,基于主数据库响应超文本请求;当读写分离配置标签为只读标签,基于备数据库响应超文本请求;备数据库用于从主数据库同步数据;当读写分离配置标签为读写标签,基于主数据库响应超文本请求。
在一个实施例中,控制器510还用于处理超文本请求,获取到超文本请求所指示的资源地址,并从读写分离配置标签存储区读取针对资源地址预配置的读写分离配置标签;或,处理超文本请求,获取到超文本请求所指示的资源地址,并调用控制器510封装的标签接口,通过标签接口从控制器510的注解中读取针对资源地址预配置的读写分离配置标签。
在一个实施例中,代理器520还用于当读写分离配置标签为写入标签,按照超文本请求指示主数据库启动数据库事务,指示主数据库执行写操作,完成写操作后完成数据库事务。
在一个实施例中,控制器510还用于当读写分离配置标签为写入标签,按照超文本请求通知代理器520;代理器520还用于指示主数据库启动数据库事务,并按照超文本请求调用业务接口;通过业务接口指示主数据库执行写操作;当调用业务接口结束,指示主数据库完成数据库事务。
在一个实施例中,代理器520还用于当读写分离配置标签为只读标签,按照超文本请求确定备数据源,跳过数据库事务的启动,按照超文本请求调用业务接口,通过业务接口指示备数据源所指向的备数据库执行读操作。
在一个实施例中,代理器520还用于当读写分离配置标签为读写标签,按照超文本请求确定主数据源,跳过数据库事务的启动,按照超文本请求调用业务接口,通过业务接口指示主数据源所指向的主数据库执行读操作或写操作。
上述超文本请求处理装置,通过资源地址预配置的读写分离配置标签,使得写入标签的资源地址对应的超文本请求通过主数据库响应,只读标签的资源地址对应的超文本请求通过备数据库响应,实现了数据库的分流,减轻了主数据库的压力;而且,还通过主数据库响应读写标签的资源地址对应的超文本请求,通过主数据库响应更多类型的超文本请求,通过不同读写分离配置标签的组合,能够灵活地处理不同类型的超文本请求,适应更多的数据库服务场景,适应能力强。
上述超文本请求处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行超文本请求处理方法时需存储的数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种超文本请求处理方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
接收超文本请求;
获取超文本请求所指示的资源地址,获取针对资源地址预配置的读写分离配置标签;
当读写分离配置标签为写入标签,基于主数据库响应超文本请求;
当读写分离配置标签为只读标签,基于备数据库响应超文本请求;备数据库用于从主数据库同步数据;
当读写分离配置标签为读写标签,基于主数据库响应超文本请求。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过控制器处理超文本请求,获取到超文本请求所指示的资源地址,并从读写分离配置标签存储区读取针对资源地址预配置的读写分离配置标签;或,
通过控制器处理超文本请求,获取到超文本请求所指示的资源地址,并调用控制器封装的标签接口,通过标签接口从控制器的注解中读取针对资源地址预配置的读写分离配置标签。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当读写分离配置标签为写入标签,按照超文本请求指示主数据库启动数据库事务,指示主数据库执行写操作,完成写操作后完成数据库事务。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当读写分离配置标签为写入标签,由控制器按照超文本请求通知代理器;由代理器指示主数据库启动数据库事务,并按照超文本请求调用业务接口;通过业务接口指示主数据库执行写操作;当调用业务接口结束,由代理器指示主数据库完成数据库事务。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当读写分离配置标签为只读标签,按照超文本请求确定备数据源,跳过数据库事务的启动,按照超文本请求调用业务接口,通过业务接口指示备数据源所指向的备数据库执行读操作。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当读写分离配置标签为读写标签,按照超文本请求确定主数据源,跳过数据库事务的启动,按照超文本请求调用业务接口,通过业务接口指示主数据源所指向的主数据库执行读操作或写操作。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种超文本请求处理方法,其特征在于,所述方法包括:
接收超文本请求;
获取所述超文本请求所指示的资源地址,获取针对所述资源地址预配置的读写分离配置标签;
当所述读写分离配置标签为写入标签,基于主数据库响应所述超文本请求;
当所述读写分离配置标签为只读标签,基于备数据库响应所述超文本请求;所述备数据库用于从所述主数据库同步数据;
当所述读写分离配置标签为读写标签,基于所述主数据库响应所述超文本请求。
2.根据权利要求1所述的方法,其特征在于,所述获取所述超文本请求所指示的资源地址,获取针对所述资源地址预配置的读写分离配置标签,包括:
通过控制器处理所述超文本请求,获取到所述超文本请求所指示的资源地址,并从读写分离配置标签存储区读取针对所述资源地址预配置的读写分离配置标签;或,
通过控制器处理所述超文本请求,获取到所述超文本请求所指示的资源地址,并调用所述控制器封装的标签接口,通过所述标签接口从所述控制器的注解中读取针对所述资源地址预配置的读写分离配置标签。
3.根据权利要求1所述的方法,其特征在于,所述当所述读写分离配置标签为写入标签,基于主数据库响应所述超文本请求,包括:
当所述读写分离配置标签为写入标签,按照所述超文本请求指示主数据库启动数据库事务,指示所述主数据库执行写操作,完成所述写操作后完成所述数据库事务。
4.根据权利要求3所述的方法,其特征在于,所述当所述读写分离配置标签为写入标签,按照所述超文本请求指示主数据库启动数据库事务,指示所述主数据库执行写操作,完成所述写操作后完成所述数据库事务,包括:
当所述读写分离配置标签为写入标签,由控制器按照所述超文本请求通知代理器;
由所述代理器指示主数据库启动数据库事务,并按照所述超文本请求调用业务接口;
通过所述业务接口指示所述主数据库执行写操作;
当调用所述业务接口结束,由所述代理器指示所述主数据库完成所述数据库事务。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述当所述读写分离配置标签为只读标签,基于备数据库响应所述超文本请求,包括:
当所述读写分离配置标签为只读标签,按照所述超文本请求确定备数据源,跳过数据库事务的启动,按照所述超文本请求调用业务接口,通过所述业务接口指示所述备数据源所指向的备数据库执行读操作。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述当所述读写分离配置标签为读写标签,基于所述主数据库响应所述超文本请求,包括:
当所述读写分离配置标签为读写标签,按照所述超文本请求确定主数据源,跳过数据库事务的启动,按照所述超文本请求调用业务接口,通过所述业务接口指示所述主数据源所指向的主数据库执行读操作或写操作。
7.一种超文本请求处理装置,其特征在于,所述装置包括:
控制器,用于接收超文本请求;获取所述超文本请求所指示的资源地址,获取针对所述资源地址预配置的读写分离配置标签;
代理器,用于当所述读写分离配置标签为写入标签,基于主数据库响应所述超文本请求;当所述读写分离配置标签为只读标签,基于备数据库响应所述超文本请求;所述备数据库用于从所述主数据库同步数据;当所述读写分离配置标签为读写标签,基于所述主数据库响应所述超文本请求。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310053102.9A CN115794928A (zh) | 2023-02-03 | 2023-02-03 | 超文本请求处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310053102.9A CN115794928A (zh) | 2023-02-03 | 2023-02-03 | 超文本请求处理方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794928A true CN115794928A (zh) | 2023-03-14 |
Family
ID=85429571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310053102.9A Pending CN115794928A (zh) | 2023-02-03 | 2023-02-03 | 超文本请求处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794928A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现***及方法 |
CN102622427A (zh) * | 2012-02-27 | 2012-08-01 | 杭州闪亮科技有限公司 | 读写分离数据库的方法及*** |
CN104391873A (zh) * | 2014-10-29 | 2015-03-04 | 上海达梦数据库有限公司 | 数据库操作分离方法和*** |
CN110019312A (zh) * | 2017-12-29 | 2019-07-16 | ***通信集团山西有限公司 | 读写数据分离调度方法、装置、设备及介质 |
CN110781214A (zh) * | 2019-09-26 | 2020-02-11 | 金蝶软件(中国)有限公司 | 数据库读写方法、装置、计算机设备和存储介质 |
-
2023
- 2023-02-03 CN CN202310053102.9A patent/CN115794928A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现***及方法 |
CN102622427A (zh) * | 2012-02-27 | 2012-08-01 | 杭州闪亮科技有限公司 | 读写分离数据库的方法及*** |
CN104391873A (zh) * | 2014-10-29 | 2015-03-04 | 上海达梦数据库有限公司 | 数据库操作分离方法和*** |
CN110019312A (zh) * | 2017-12-29 | 2019-07-16 | ***通信集团山西有限公司 | 读写数据分离调度方法、装置、设备及介质 |
CN110781214A (zh) * | 2019-09-26 | 2020-02-11 | 金蝶软件(中国)有限公司 | 数据库读写方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
张喜征 等: "《共享经济平台管理》", 湖南大学出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11221995B2 (en) | Data replication from a cloud-based storage resource | |
US9471610B1 (en) | Scale-out of data that supports roll back | |
WO2017162032A1 (zh) | 执行数据恢复操作的方法及装置 | |
US20140081927A1 (en) | Data node fencing in a distributed file system | |
WO2020151181A1 (zh) | 基于区块链的跨平台数据更新方法、装置和计算机设备 | |
CN107153644B (zh) | 一种数据同步方法及装置 | |
CN110753084B (zh) | 上链数据读取方法、缓存服务器及计算机可读存储介质 | |
EP4213038A1 (en) | Data processing method and apparatus based on distributed storage, device, and medium | |
US12001450B2 (en) | Distributed table storage processing method, device and system | |
US11240302B1 (en) | Live migration of log-based consistency mechanisms for data stores | |
US10545667B1 (en) | Dynamic data partitioning for stateless request routing | |
CN115470156A (zh) | 基于rdma的内存使用方法、***、电子设备和存储介质 | |
CN112148206A (zh) | 一种数据读写方法、装置、电子设备及介质 | |
US9378230B1 (en) | Ensuring availability of data in a set being uncorrelated over time | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
CN111522881A (zh) | 业务数据处理方法、装置、服务器及存储介质 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN115794928A (zh) | 超文本请求处理方法、装置、计算机设备和存储介质 | |
CN112860746B (zh) | 一种基于缓存削减的方法、设备及*** | |
CN113672640A (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN114928620A (zh) | 用户信息同步方法、装置、设备、存储介质和程序产品 | |
CN112035471B (zh) | 一种事务处理方法及计算机设备 | |
CN113872994B (zh) | 组织架构同步方法、装置、计算机设备和存储介质 | |
CN112527561B (zh) | 基于物联网云存储的数据备份方法及装置 | |
CN113407629A (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 |
Application publication date: 20230314 |
|
RJ01 | Rejection of invention patent application after publication |