CN110297862B - 数据库访问方法及数据库访问中间件 - Google Patents

数据库访问方法及数据库访问中间件 Download PDF

Info

Publication number
CN110297862B
CN110297862B CN201910597998.0A CN201910597998A CN110297862B CN 110297862 B CN110297862 B CN 110297862B CN 201910597998 A CN201910597998 A CN 201910597998A CN 110297862 B CN110297862 B CN 110297862B
Authority
CN
China
Prior art keywords
service module
database
server
client
data access
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
Application number
CN201910597998.0A
Other languages
English (en)
Other versions
CN110297862A (zh
Inventor
冷一民
于晓虹
张加伟
黄群
张文娇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN201910597998.0A priority Critical patent/CN110297862B/zh
Publication of CN110297862A publication Critical patent/CN110297862A/zh
Application granted granted Critical
Publication of CN110297862B publication Critical patent/CN110297862B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2871Implementation details of single intermediate entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据库访问方法及数据库访问中间件,通过多个客户端分别接收用户发送的数据访问请求,服务器通过轮询该多个客户端,将客户端接收到的数据访问请求转发给空闲的服务模块,服务模块根据数据访问请求连接对应的异构数据库,建立异构数据库与用户之间的数据连接。本发明的方法通过服务器对客户端轮询以及由空闲服务模块连接对应的异构数据库,降低数据库与用户的连接数量,减轻了数据库压力,避免了用户与数据库的长连接,进而避免了数据库连接数量超过其最大连接数造成数据吞吐效率下降,并且支持高并发,提高了可靠性和稳定性,有效提高数据库响应的整体效率。

Description

数据库访问方法及数据库访问中间件
技术领域
本发明涉及通信技术领域,尤其涉及一种数据库访问方法及数据库访问中间件。
背景技术
在通信领域中经常存在着对海量数据的存储和读取,例如电信运营商的计费系统,而数据库的连接、断开将消耗和释放一定的系统资源,因此,短连接不可取,大都采用长连接的方式,也即长时间保持与数据库的连接状态,在没有数据通信时,定时发送数据包,以维持连接状态。
由于对于电信运营商的计费系统,应用进程数量非常庞大,数据库的连接数是有限的,如果每个应用进程和数据库建立一个长连接,数据库的连接将超过其最大连接数,数据吞吐效率将急剧下降,严重的会导致连接失败,稳定性大受影响。
发明内容
本发明提供一种数据库访问方法及数据库访问中间件,以在减少数据库的长连接,避免了数据库连接数量超过其最大连接数造成数据吞吐效率下降,提高数据访问的可靠性和稳定性。
本发明的一个方面是提供一种数据库访问方法,该数据库访问方法步骤如下:
服务器轮询多个客户端,其中所述多个客户端与所述服务器连接,分别用于接收用户发送的数据访问请求;
所述服务器将所述客户端接收到的所述数据访问请求转发给空闲的服务模块,以使所述服务模块根据所述数据访问请求连接对应的异构数据库,建立所述异构数据库与所述用户之间的数据连接。
进一步的,所述服务器将所述客户端接收到的所述数据访问请求转发给空闲的服务模块前,还包括:
获取各所述服务模块的当前状态;
根据所述当前状态选择负荷最小的服务模块作为所述空闲的服务模块。
进一步的,所述服务器至少有两个,各所述服务器实现负载均衡,并在接收到升级指令或维护指令时,依次进行升级或维护。
进一步的,所述数据访问请求为经过所述客户端操作符重载后的标准化应用代码。
进一步的,所述服务模块通过统一接口与各所述异构数据库连接。
本发明的另一个方面是提供一种数据库访问中间件,包括:
多个客户端,分别用于接收用户发送的数据访问请求;
服务器,与所述多个客户端连接,用于轮询所述多个客户端,将所述客户端接收到的所述数据访问请求转发给空闲的服务模块;
所述服务模块,用于根据所述数据访问请求连接对应的异构数据库,建立所述异构数据库与所述用户之间的数据连接。
进一步的,所述服务器还用于:
获取各所述服务模块的当前状态;
根据所述当前状态选择负荷最小的服务模块作为所述空闲的服务模块。
进一步的,所述服务器至少有两个,各所述服务器实现负载均衡,并在接收到升级指令或维护指令时,依次进行升级或维护。
进一步的,所述数据访问请求为经过所述客户端操作符重载后的标准化应用代码。
进一步的,所述服务模块通过统一接口与各所述异构数据库连接。
本发明提供的数据库访问方法及数据库访问中间件,通过多个客户端分别接收用户发送的数据访问请求,服务器通过轮询该多个客户端,将客户端接收到的数据访问请求转发给空闲的服务模块,服务模块根据数据访问请求连接对应的异构数据库,建立异构数据库与用户之间的数据连接。本发明的方法通过服务器对客户端轮询以及由空闲服务模块连接对应的异构数据库,降低数据库与用户的连接数量,减轻了数据库压力,避免了用户与数据库的长连接,进而避免了数据库连接数量超过其最大连接数造成数据吞吐效率下降,并且支持高并发,提高了可靠性和稳定性,有效提高数据库响应的整体效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据库访问方法流程图;
图2为本发明实施例提供的数据库访问中间件的架构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的数据库访问方法流程图。本实施例提供了一种数据库访问方法,通过数据库访问中间件实现用户对异构数据库的数据访问,其中如图2所示,数据库访问中间件包括多个客户端Client、多个服务模块Service,以及位于客户端Client和服务模块Service间的服务器Server,其中服务器Server可以为一个或者多个(图2仅示出一个服务器)。
需要说明的是,中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件之间:在操作系统、网络和数据库之上,应用软件的下层。总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。本实施例的数据库访问中间件就是建立在数据库和用户之间的数据访问代理软件。
如图1所示,本实施例提供的方法执行主体为服务器,该方法具体步骤如下:
S101、服务器轮询多个客户端,其中所述多个客户端与所述服务器连接,分别用于接收用户发送的数据访问请求。
在本实施例中,客户端Client负责直接跟用户进行交互,可接受用户发送的数据访问请求。在接收到用户发送的数据访问请求后,客户端Client并不是立即将数据访问请求发送给服务器Server,而是由服务器Server轮询多个客户端Client,以对收到数据访问请求的客户端Client进行后续的处理,而没有收到数据访问请求的客户端Client则继续处于等待状态,本实施例通过服务器Server轮询多个客户端Client的方式,可依次对用户的数据访问请求进行处理,避免了将客户端Client与服务器Server需要保持长连接,可以释放服务器Server的系统资源,避免超过其最大连接数,对服务器Server负载过大,降低数据访问服务效率。
S102、所述服务器将所述客户端接收到的所述数据访问请求转发给空闲的服务模块,以使所述服务模块根据所述数据访问请求连接对应的异构数据库,建立所述异构数据库与所述用户之间的数据连接。
在本实施例中,服务器Server通过轮询依次将各客户端Client接收到的数据访问请求转发给空闲的服务模块Service,由该空闲的服务模块Service根据数据访问请求查找对应的异构数据库,并与该异构数据库连接,从而建立该异构数据库与用户之间的数据连接。其中异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,几个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的数据阵管理系统、外构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍有自己的应用特性、完整性控制和安全性控制。本实施例中,服务器Server将数据访问请求转发给空闲的服务模块Service前,还可首先查找空闲的服务模块Service,其中空闲的服务模块Service可以为当前没有数据访问任务的服务模块Service,若不存在,也可将当前负荷最小的服务模块作为空闲的服务模块Service。
本实施例提供的数据库访问方法,通过多个客户端分别接收用户发送的数据访问请求,服务器通过轮询该多个客户端,将客户端接收到的数据访问请求转发给空闲的服务模块,服务模块根据数据访问请求连接对应的异构数据库,建立异构数据库与用户之间的数据连接。本实施例的方法通过服务器对客户端轮询以及由空闲服务模块连接对应的异构数据库,降低数据库与用户的连接数量,减轻了数据库压力,避免了用户与数据库的长连接,进而避免了数据库连接数量超过其最大连接数造成数据吞吐效率下降,并且支持高并发,提高了可靠性和稳定性,有效提高数据库响应的整体效率。
在上述实施例的基础上,本实施例的数据库访问中间件采用C/S架构,由负载平衡的2个Server负责轮询Client的请求和监控维护信息接入,根据请求报头判断并通过Socketpair将Socket Fd传递给对应的空闲的Service,由Service负责和Client的对话,;2个Server之间负载平衡,提高效率并保证在Service维护和升级过程中仍能对外提供服务;还可采用UDP(User Datagram Protocol,用户数据报协议)协议实现一点维护。
进一步的,S102中的所述服务器将所述客户端接收到的所述数据访问请求转发给空闲的服务模块前,还可包括:
获取各所述服务模块的当前状态;
根据所述当前状态选择负荷最小的服务模块作为所述空闲的服务模块。
本实施例中,Server按照配置文件启动不同数据库的、一定数量的服务,并开始负责轮询Client的接入,批量地接受和将请求分发给对应的负荷最小的Service。Server和Service之间通过Socketpair连接,其中Socketpair是linux提供的一种双向通讯机制,通过socket实现双向通讯,由其传递Client的Socket Fd,并感知Service的状态,以根据Service的状态判断其负荷大小,若存在空闲的Service,则直接将请求分发给空闲的Service,若不存在空闲的Service,则选择负荷最小的Service作为所述空闲的服务模块。此外,当感知到Service异常退出,则自动重启Service,保证系统的可靠性。
此外,Server还可首先通过统计和分析,判断Client的数据访问属于频繁的、大实务的,将该Client与异构数据库建立长连接,而判断Client的数据访问属于不太频繁的、小事务的,则采用上述实施例提供的数据库访问方法。
进一步的,所述服务器至少有两个,各所述服务器实现负载均衡,并在接收到升级指令或维护指令时,依次进行升级或维护。
本实施例中,采用双服务器负载均衡,可提高效率并保证在Service维护和升级过程中不间断服务。具体的,采用UDP通讯方式,实现一点监控、一点维护;版本升级一点通知,自动下载更新,由Server负责下载并更新Service服务程序,由于采用双Server机制,依次升级,不会造成服务中断。
进一步的,所述数据访问请求为经过所述客户端操作符重载后的标准化应用代码。
其中,操作符重载是指把已经定义的、有一定功能的操作符进行重新定义,来完成更为细致具体的运算等功能。操作符重载可以将概括性的抽象操作符具体化,便于外部调用而无需知晓内部具体运算过程。本实施例中利用的操作符重载的方式,实现应用代码的标准化、简易化;以oracle数据库为例,查询语句:
sql="SELECT u_id,u_name,to_char(u_date,'yyyy-mm-dd')FROM student";
Figure BDA0002118235930000061
接口的实现为:
Figure BDA0002118235930000062
而对于Insert:
Sql="insert into student(u_id,u_name,u_date)values(:1,:2,to_date(:3,'yyyy-mm-dd)";
Figure BDA0002118235930000063
Figure BDA0002118235930000071
接口的实现为:
Figure BDA0002118235930000072
通过上述的操作符重载,实现应用代码的标准化、简易化,大大降低应用程序开发的难度和开发工作量,并提高可移植性和可复用性。
进一步的,所述服务模块通过统一接口与各所述异构数据库连接。
由于不同系统采用的数据库各异,主要有oracle、mysql、altibase等,各数据库接口各不相同,给应用开发带来额外的开发工作量。本实施例中Service与数据库接口的代码可与上述代码相同,针对异构数据库,不管是oracle、mysql还是其他数据库,Service均通过统一接口与各数据库连接,从而保证系统的可移植、可扩展性。即使撇开数据库访问中间件,由应用直连数据库也不需要改动代码,充分保护了企业在应用软件开发和维护中的投资。此外,本实施例中需要将不同数据库封装成不同的类实现异构数据库的操作,对外暴露统一的接口。而数据库和接口均以多态的形式继承自相同的基类CDb,因此对外提供的方法是一致的,从而解决了移植性、可扩展性。
本实施例中,Service可以以MD5码自动缓存SQL,并查找复用SQL的解析结果(出入参个数、类型等),避免重复解析,最大限度提高响应效率。采用MD5码主要是为了减少存储空间、提高查询效率。
本实施例的数据库访问中间件支持分布式事务XA,并支持表按分布键分布在不同库上,利用XA协议保证事务的一致性,支持数据分布式或统一的插入、修改以及大小表关联查询等。其中,XA是一个分布式事务协议,由Tuxedo提出,XA中大致分为两部分:事务管理器和本地资源管理器,其中本地资源管理器往往由数据库实现,比如oracle、DB2这些商业数据库都实现了XA接口,而事务管理器作为全局的调度者,负责各个本地资源的提交和回滚。
本实施例提供的数据库访问方法,通过多个客户端分别接收用户发送的数据访问请求,服务器通过轮询该多个客户端,将客户端接收到的数据访问请求转发给空闲的服务模块,服务模块根据数据访问请求连接对应的异构数据库,建立异构数据库与用户之间的数据连接。本实施例的方法通过服务器对客户端轮询以及由空闲服务模块连接对应的异构数据库,降低数据库与用户的连接数量,减轻了数据库压力,避免了用户与数据库的长连接,进而避免了数据库连接数量超过其最大连接数造成数据吞吐效率下降,并且支持高并发,提高了可靠性和稳定性,有效提高数据库响应的整体效率。同时,采用统一接口,符合软件设计的接口隔离和依赖倒置原则,实现异构数据库(如oracle、mysql、altibase等)接口标准化、简易化、智能化,大大降低应用程序开发的难度和开发工作量,提高系统的可移植、可扩展性;利用的操作符重载的方式,实现应用代码的标准化、简易化,紧密贴合软件设计的里氏替换原则,对应用开发来说,无论是通过数据代理中间件、还是直接访问数据库,只需更换数据访问类,代码不需要任何改变;利用SQL语法分析和缓存,提高中间件的智能化和自动化,并提高效率;采用可靠的C/S设计架构,并发的socket的通讯,多进程协同处理的机制,满足高并发要求;支持分布式事务XA,以及支持远程监控、维护和版本升级。
图2为本发明实施例提供的数据库访问中间件的结构图。本实施例提供的数据库访问中间件可以执行上述数据库访问方法实施例提供的处理流程,如图2所示,数据库访问中间件包括多个客户端Client41、多个服务模块Service43,以及位于客户端Client41和服务模块Service43间的服务器Server42,其中服务器Server42可以为一个或者多个(图2仅示出一个服务器42)。
其中,多个客户端41,分别用于接收用户发送的数据访问请求;
服务器42,与所述多个客户端41连接,用于轮询所述多个客户端41,将所述客户端41接收到的所述数据访问请求转发给空闲的服务模块43;
所述服务模块43,用于根据所述数据访问请求连接对应的异构数据库,建立所述异构数据库与所述用户之间的数据连接。
进一步的,所述服务器42还用于:
获取各所述服务模块43的当前状态;
根据所述当前状态选择负荷最小的服务模块43作为所述空闲的服务模块43。
进一步的,所述服务器42至少有两个,各所述服务器42实现负载均衡,并在接收到升级指令或维护指令时,依次进行升级或维护。
进一步的,所述数据访问请求为经过所述客户端41操作符重载后的标准化应用代码。
进一步的,所述服务模块43通过统一接口与各所述异构数据库连接。
本实施例提供的数据库访问中间件可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。
本实施例提供的数据库访问中间件,通过多个客户端分别接收用户发送的数据访问请求,服务器通过轮询该多个客户端,将客户端接收到的数据访问请求转发给空闲的服务模块,服务模块根据数据访问请求连接对应的异构数据库,建立异构数据库与用户之间的数据连接。也即通过服务器对客户端轮询以及由空闲服务模块连接对应的异构数据库,降低数据库与用户的连接数量,减轻了数据库压力,避免了用户与数据库的长连接,进而避免了数据库连接数量超过其最大连接数造成数据吞吐效率下降,并且支持高并发,提高了可靠性和稳定性,有效提高数据库响应的整体效率。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (2)

1.一种数据库访问方法,其特征在于,包括:
服务器轮询多个客户端,其中所述多个客户端与所述服务器连接,分别用于接收用户发送的数据访问请求;
所述服务器将所述客户端接收到的所述数据访问请求转发给空闲的服务模块,以使所述服务模块根据所述数据访问请求连接对应的异构数据库,建立所述异构数据库与所述用户之间的数据连接,其中,所述数据访问请求为经过所述客户端操作符重载后的标准化应用代码,所述服务模块通过统一接口与各所述异构数据库连接;所述服务器采用MD5码自动缓存SQL,并查找复用SQL的解析结果;
所述服务器将所述客户端接收到的所述数据访问请求转发给空闲的服务模块前,还包括:
所述服务器和服务模块之间通过socket实现双向通讯,并由socket传递所述客户端的Socket Fd,以及获取所述服务模块的当前状态;
根据所述服务模块的当前状态判断所述服务模块的负荷大小,若存在空闲的所述服务模块,则直接将所述数据访问请求分发给空闲的所述服务模块,若不存在空闲的所述服务模块,则选择负荷最小的所述服务模块作为所述空闲的服务模块;
所述服务器至少有两个,各所述服务器实现负载均衡,并在接收到升级指令或维护指令时,采用用户数据报协议通讯方式以及采用双服务器机制,依次进行升级,以及实现一点监控、一点维护;
所述服务器、客户端以及服务模块组成一数据库访问中间件,所述数据库访问中间件采用客户端/服务器架构,以及支持分布式事务XA,并利用XA协议保证事务的一致性,支持数据分布式或者统一的插入、修改以及大小表关联查询。
2.一种数据库访问的装置,其特征在于,包括:
多个客户端,分别用于接收用户发送的数据访问请求;
服务器,与所述多个客户端连接,用于轮询所述多个客户端,将所述客户端接收到的所述数据访问请求转发给空闲的服务模块;
所述服务模块,用于根据所述数据访问请求连接对应的异构数据库,建立所述异构数据库与所述用户之间的数据连接,其中,所述数据访问请求为经过所述客户端操作符重载后的标准化应用代码,所述服务模块通过统一接口与各所述异构数据库连接;所述服务器采用MD5码自动缓存SQL,并查找复用SQL的解析结果;
所述服务器还用于:所述服务器和服务模块之间通过socket实现双向通讯,并由socket传递所述客户端的Socket Fd,以及获取所述服务模块的当前状态;
根据所述服务模块的当前状态判断所述服务模块的负荷大小,若存在空闲的所述服务模块,则直接将所述数据访问请求分发给空闲的所述服务模块,若不存在空闲的所述服务模块,则选择负荷最小的所述服务模块作为所述空闲的服务模块;
所述服务器至少有两个,各所述服务器实现负载均衡,并在接收到升级指令或维护指令时,采用用户数据报协议通讯方式以及采用双服务器机制,依次进行升级,以及实现一点监控、一点维护;
所述服务器、客户端以及服务模块组成一数据库访问中间件,所述数据库访问中间件采用客户端/服务器架构,以及支持分布式事务XA,并利用XA协议保证事务的一致性,支持数据分布式或者统一的插入、修改以及大小表关联查询。
CN201910597998.0A 2019-07-04 2019-07-04 数据库访问方法及数据库访问中间件 Active CN110297862B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910597998.0A CN110297862B (zh) 2019-07-04 2019-07-04 数据库访问方法及数据库访问中间件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910597998.0A CN110297862B (zh) 2019-07-04 2019-07-04 数据库访问方法及数据库访问中间件

Publications (2)

Publication Number Publication Date
CN110297862A CN110297862A (zh) 2019-10-01
CN110297862B true CN110297862B (zh) 2022-10-14

Family

ID=68030114

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910597998.0A Active CN110297862B (zh) 2019-07-04 2019-07-04 数据库访问方法及数据库访问中间件

Country Status (1)

Country Link
CN (1) CN110297862B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667396B (zh) * 2020-12-24 2023-09-01 北京奇艺世纪科技有限公司 一种访问请求处理方法、装置及系统
CN112738205B (zh) * 2020-12-25 2023-04-07 微梦创科网络科技(中国)有限公司 基于服务池的资源管控方法、装置和系统
CN112732441B (zh) * 2021-01-07 2022-12-06 众阳健康科技集团有限公司 一种多元动态连接池的连接方法、装置及系统
CN113032431B (zh) * 2021-04-23 2022-02-18 焦点科技股份有限公司 一种基于数据库中间件集群的高可用客户端负载均衡方法
CN113242312B (zh) * 2021-05-26 2022-10-25 西安热工研究院有限公司 一种电力实时数据传输中间件及异步数据访问的方法
US20230099755A1 (en) * 2021-09-24 2023-03-30 Sap Se Sql extension to key transfer system with authenticity, confidentiality, and integrity

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581225A (zh) * 2012-07-25 2014-02-12 中国银联股份有限公司 分布式系统中的节点处理任务的方法
CN106293887A (zh) * 2015-05-21 2017-01-04 中兴通讯股份有限公司 数据库处理方法及装置
CN108111586A (zh) * 2017-12-14 2018-06-01 重庆邮电大学 一种高并发支持的web集群系统及方法
CN109154896A (zh) * 2016-04-29 2019-01-04 思杰系统有限公司 用于服务链负载平衡的系统和方法
CN109241153A (zh) * 2017-07-04 2019-01-18 北京航天长峰科技工业集团有限公司 一种异构数据库集成接入方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9356872B2 (en) * 2012-04-27 2016-05-31 Level 3 Communications, Llc Load balancing of network communications
US20160316038A1 (en) * 2015-04-21 2016-10-27 Masoud Aghadavoodi Jolfaei Shared memory messaging channel broker for an application server
CN106649865A (zh) * 2016-12-31 2017-05-10 深圳市优必选科技有限公司 一种分布式服务器系统及数据处理方法
CN107733991A (zh) * 2017-09-19 2018-02-23 大唐网络有限公司 一种基于OpenStack架构提供负载均衡服务实现方法
CN109308328A (zh) * 2018-11-30 2019-02-05 广州市玄武无线科技股份有限公司 远程查询移动终端app本地数据的方法、装置以及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581225A (zh) * 2012-07-25 2014-02-12 中国银联股份有限公司 分布式系统中的节点处理任务的方法
CN106293887A (zh) * 2015-05-21 2017-01-04 中兴通讯股份有限公司 数据库处理方法及装置
CN109154896A (zh) * 2016-04-29 2019-01-04 思杰系统有限公司 用于服务链负载平衡的系统和方法
CN109241153A (zh) * 2017-07-04 2019-01-18 北京航天长峰科技工业集团有限公司 一种异构数据库集成接入方法
CN108111586A (zh) * 2017-12-14 2018-06-01 重庆邮电大学 一种高并发支持的web集群系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Dynamic load balancing using buffer management in distributed database environment;Richa Mishra等;《2015 International Conference on Advances in Computer Engineering and Applications》;20150723;787-790 *
低开销的分布式数据库负载均衡技术;孙乔等;《计算机应用》;20170615;240-242,278 *

Also Published As

Publication number Publication date
CN110297862A (zh) 2019-10-01

Similar Documents

Publication Publication Date Title
CN110297862B (zh) 数据库访问方法及数据库访问中间件
CN109525624B (zh) 一种容器登录方法、装置及存储介质
US10244058B2 (en) Extending functionality of applications
US8260741B2 (en) System and method for utilizing a modular operating system (OS) resident agent allowing an out-of-band server management
CN101605056B (zh) 一种j2ee服务器监控装置及采用该装置的监控方法
CN109542457A (zh) 一种边缘计算网络的分布式应用分发部署的系统及方法
CN113630372A (zh) 一种边缘计算的云边协同系统
WO2016184175A1 (zh) 数据库处理方法及装置
CN103986786A (zh) 一种远程云桌面操作系统
CN111061491A (zh) 一种基于lxc容器技术的边缘计算网关管理系统及方法
CN101360127A (zh) 文件更新方法及传输系统
CN112804289B (zh) 一种资源同步方法、装置、设备及存储介质
CN113342547B (zh) 一种远程服务调用方法、装置、电子设备及可读存储介质
CN104750544A (zh) 应用于分布式系统中的进程管理系统及进程管理方法
CN112688915A (zh) 跨协议通信方法、装置及服务器
CN113794652A (zh) 数据处理方法、装置、电子设备及存储介质
CN114553693B (zh) 网关升级方法及装置
CN117193936B (zh) 超融合架构下的虚拟机管理方法、装置及设备
CN112511595B (zh) 一种消息推送方法及消息服务系统
CN114296953A (zh) 一种多云异构系统及任务处理方法
KR102124954B1 (ko) 이기종 데이터베이스 관리 시스템을 동시 지원하기 위한 IoT 플랫폼 시스템 및 그 동작 방법
CN112068963A (zh) 一种嵌入式系统分布式调度系统
CN116743844A (zh) 分布式系统的服务调用装置及方法
CN117118821A (zh) 一种基于client-server模式的多数据源管理方法
CN115102999B (zh) DevOps系统、服务提供方法、存储介质和电子装置

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