CN109542611B - 数据库即服务系统、数据库调度方法、设备及存储介质 - Google Patents
数据库即服务系统、数据库调度方法、设备及存储介质 Download PDFInfo
- Publication number
- CN109542611B CN109542611B CN201710860349.6A CN201710860349A CN109542611B CN 109542611 B CN109542611 B CN 109542611B CN 201710860349 A CN201710860349 A CN 201710860349A CN 109542611 B CN109542611 B CN 109542611B
- Authority
- CN
- China
- Prior art keywords
- information
- database
- instance
- service
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Abstract
本发明实施例公开了一种数据库即服务系统、数据库调度方法、设备及存储介质,该系统包括控制模块、调度模块和资源池模块。控制模块用于将用户的数据库资源申请请求发送到调度模块,接收调度模块返回的与申请请求对应的数据库服务信息,服务信息包括调度模块分配的数据库服务端口和数据节点;调度模块根据数据节点的资源使用信息为申请请求创建上述服务信息,根据服务信息向资源池模块发送数据库实例创建请求,并接收资源池模块返回的实例信息;资源池模块用于根据实例创建请求在调度模块分配的数据节点创建数据库实例。通过本发明实施例的系统,实现了数据库实例的自动化申请与创建,且无需用户手工配置,更好的满足了用户的实际使用需求。
Description
技术领域
本发明涉及数据库服务技术领域,具体涉及一种数据库即服务系统、数据库调度方法、设备及存储介质。
背景技术
目前,平台即服务(Platform as a Service,PaaS)平台功能更多倾向于应用侧服务,提供应用运行时的环境,但数据库服务是应用程序运行必不可少的组件之一,甚至是关乎其生死之所在。传统数据库以物理机或虚拟机为单位进行租户部署,随着应用数量和规模的增加愈加体现出资源利用不均衡和管理困难的问题,从经济压力和运维压力上都需要将数据库整合到云中,形成数据库即服务(DataBase as a Service,DBaas)。目前主流的数据库即服务主要有两种提供方法:
1、如cloud foundry(VMware推出的开源PaaS云平台)、openshift(红帽的云开发平台即服务)、openstack(由NASA和Rackspace合作研发并发起的,以阿帕奇Apache许可授权的自由软件和开放源代码项目)等开源PaaS平台,提供基于容器或虚拟机的数据库服务及调度方法,目前主要用于应用开发、测试过程的数据支撑。
2、在其他典型的商业云平台中,主流的做法将原有的物理数据库实例或数据库对象的集合schema封装为逻辑数据库,通过接入代理程序进行路由和转发,实现数据库多租户和资源共享。
现有的数据库即服务方案在申请资源后还需要手工进行配置、调试和连接,用户使用体验较差。
发明内容
本发明实施例提供了一种数据库即服务系统、数据库调度方法、设备及存储介质,实现了数据库实例的自动化申请和创建,无需用户手工配置。
根据本发明的一个方面,提供一种数据库即服务系统,包括:
控制模块,用于接收用户的数据库资源申请请求,将申请请求发送到调度模块,接收调度模块返回的与申请请求对应的数据库服务信息,将服务信息和用户信息关联存储,服务信息包括调度模块分配的数据库服务端口和数据节点;
调度模块,用于记录资源池模块中所有数据节点的资源使用信息,根据资源使用信息为申请请求创建数据库服务信息,根据服务信息向资源池模块发送数据库实例创建请求,接收资源池模块返回的数据库实例信息,将服务信息和实例信息关联存储,将服务信息发送给控制模块,实例信息包括实例端口;
资源池模块,用于提供数据库实例运行的数据节点,将数据节点的资源使用信息向调度模块注册;还用于根据接收到的实例创建请求在调度模块分配的数据节点创建数据库实例,将数据库实例信息发送给调度模块。
根据本发明的另一个方面,提供一种数据库调度方法,包括:
接收用户的数据库资源申请请求;
根据数据库资源池中所有数据节点的资源使用信息,为申请请求创建数据库服务信息,将服务信息和用户信息进行关联存储,服务信息包括为申请请求分配的数据库服务端口和数据节点;
依据服务信息,在分配的数据节点为申请请求创建数据库实例,将服务信息和数据库实例的实例信息进行关联存储,实例信息包括实例端口。
根据本发明的再一个方面,提供一种数据库调度设备,包括存储器和处理器;
存储器用于储存可执行程序代码;
处理器用于读取存储器中存储的可执行程序代码以执行本发明实施例中的数据库调度方法。
根据本发明的又一个方面,提供一种计算机可读存储介质,计算机可读存储介质包括指令,当指令在计算机上运行时,使得计算机执行本发明实施例中的数据库调度方法。
本发明实施例提供的数据库即服务系统、数据库调度方法、设备及存储介质,系统各模块间基于消息发布订阅机制实现通信,由调度模块根据用户的数据库资源申请请求和资源池中数据节点的资源使用信息,完成了数据服务信息的创建,资源模块根据调度模块创建的服务信息在对应的数据节点完成数据库实例的采集。通过本发明实施例的数据库即服务系统,实现了数据库服务的自动化申请和创建,无需用户手工配置,更好的满足了用户的实际使用需求。
附图说明
通过阅读以下参照附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显,其中,相同或相似的附图标记表示相同或相似的特征。
图1为本发明一实施例中的一种数据库即服务系统的结构示意图;
图2为本发明另一实施例中的一种数据库即服务系统的结构示意图;
图3为本发明实施例中调度模块为数据库资源申请请求筛选数据节点的流程示意图;
图4为本发明再一实施例中的一种数据库即服务系统的结构示意图;
图5为本发明实施例中建立应用程序和数据库实例绑定关系的流程示意图;
图6为本发明又一实施例中一种数据库即服务系统的结构示意图;
图7为本发明一具体实施例中一种数据库即服务系统的结构示意图;
图8为本发明实施例中一种数据库调度方法的流程示意图;
图9为能够实现本发明实施例的数据库即服务系统和数据库调度方法的计算设备的示例性硬件架构的结构图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。
下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明造成不必要的模糊。
图1示出了本发明实施例中提供的一种数据库即服务系统的结构示意图,由图中可以看出,该数据库即服务系统100主要可以包括控制模块110、调度模块120和资源池模块130。
控制模块110,用于接收用户的数据库资源申请请求,将数据库资源申请请求发送到调度模块,接收调度模块返回的与申请请求对应的数据库服务信息,将服务信息和用户信息关联存储,服务信息包括调度模块分配的数据库服务端口(即数据库服务开放的端口)和数据节点。
调度模块120,用于记录资源池模块130中所有数据节点的资源使用信息,根据资源使用信息为上述申请请求创建数据库服务信息,根据服务信息向资源池模块130发送数据库实例创建请求,接收资源池模块130返回的数据库实例信息,将服务信息发送给控制模块110,实例信息包括实例端口。
资源池模块130,用于提供数据库实例运行的数据节点,将数据节点的资源使用信息向调度模块注册;还用于接收调度模块120发送的数据库实例创建请求,根据接收到的实例创建请求在调度模块120分配的数据节点创建数据库实例,将创建的数据库实例信息发送给调度模块120。
本发明实施例的数据库即服务系统,用户可以通过控制模块110的管理界面向调度模块120发起资源申请需求即上述数据库资源申请请求。调度模块120接收到上述申请请求后,根据申请请求中的具体的需求信息和资源池模块提供的数据库实例运行的数据节点的资源使用信息筛选出符合用户请求的数据节点,创建数据库服务信息,并依据创建的服务信息向资源池模块130发起数据库实例创建请求,由资源池模块130在调度模块120分配的数据节点上完成与上述申请请求相匹配的数据库实例的创建。
本发明实施例中,数据节点的资源使用信息包括但不限于数据节点的地址端口信息(资源池的每个数据节点上可以提供多个可用的端口,实例端口会占用其中一个)、数据节点的类型即服务等级、以及数据节点的可用资源即可用端口等。资源池模块130中在有新的数据节点上线时,资源池模块130会向调度模块120进行注册,将数据节点的上述资源使用信息上报给调度模块120,以使调度模块120能够根据该使用信息进行数据节点的资源统计和调度,保障资源的均衡利用。
本发明一实施例中,数据库即服务系统还包括路由模块140,如图2所示。此时,调度模块120,还用于向路由模块140发送服务信息和实例信息的注册请求。
路由模块140,用于根据接收到的注册请求建立并存储服务端口和实例端口的第一映射关系;还用于接收用户的第一数据库访问请求时,根据第一数据库访问请求中的服务端口和第一映射关系,确定出对应的实例端口,根据确定出的实例端口向资源池模块130发送第二数据库访问请求。
资源池模块130,还用于根据第二数据库访问请求中的实例端口启动相应的数据库实例。
在数据库实例创建成功后,为了实现用户对其对应的数据库实例的查询、修改或删除等操作,调度模块120还需要将其创建的数据库服务信息与该服务信息对应的实例信息向路由模块140激活,即向路由模块140发送上述注册请求。只有向路由模块140注册成功即在路由模块140中完成服务端口和实例端口的第一映射关系的建立后,用户在后续应用中才能够通过路由模块140向资源池模块130发起数据库访问请求时,系统才能正常对外提供服务。具体的,路由模块140在接收到数据库访问请求时,根据访问请求对应的服务端口,将服务端口映射到对应的实例端口上,以请求资源池模块130启动与该实例端口的数据库实例,实现对数据库资源的访问。
本发明实施例中,路由模块140主要提供服务注册功能,通过服务地址到数据库实例地址的映射,实现数据访问的路由引流和数据库服务高可用配置功能。
本发明一具体实施例中,路由模块140可以通过haproxy、etcd和confd配合实现动态的服务注册和路由,主要流程包括:
1)调度模块120将服务信息与对应的数据库实例通知etcd服务。
2)etcd服务将服务信息注册到自己的键值库中。
3)confd检测到etcd服务的内容变化,更新haproxy的配置并重新加载。
4)应用程序通过服务ip和服务端口访问数据库,haproxy将服务信息引流到具体的数据库实例中;如果后端实例发生变化(主要是指数据库实例不可用,包括数据库端口阻塞、实例故障或主机宕机等情况),则通过haproxy实现主备(在数据库实例存在高可用配置时)的自动切换。
本发明实施例的数据库即服务系统,通过各模块间的消息发布订阅机制实现了数据库实例的快速配置和创建,通过路由层即路由模块140实现了数据库服务注册,保持服务地址(服务端口)到物理数据库实例地址(实例端口)的映射关系,实现了数据访问的路由引流。
本发明实施例中,资源池模块130中提供的数据库实例运行的数据节点包括物理机资源节点、虚拟机资源节点和容器资源节点三种类型,三种类型的数据节点相应的提供高中低三种服务等级。
物理机资源节点对应高级数据库服务,该服务对应于性能要求高,并发量大,数据写入频繁的应用程序,需要独享带宽和服务器资源;或者应用安全定级高,要求数据进行物理隔离,使用资源池独立物理服务器承载的应用程序,适用在生产核心系统。虚拟机资源节点对应中级数据库服务,适用于性能要求一般或安全定级不高的应用程序,如企业内部管理信息化系统,使用虚拟机承载。容器资源节点对应低级数据库服务,适用于对安全性和稳定性要求较低的系统,如临时性系统或开发测试环境,可以使用Docker或warden等容器支撑。
本实施例中,通过提供不同服务等级的数据节点,提供不同的性能和隔离级别的数据库服务等级,更好的满足了不同业务场景的应用需求。用户在申请数据库资源时,可以根据实际应用需求申请相应等级的数据库服务。
本发明实施例中,上述数据库资源申请请求中可以包括所要申请的数据节点的类型和和数据节点的数量N,N≥1。
此时,调度模块120,具有用于根据上述申请请求中所要申请的数据节点的类型,将资源池模块130中与申请的数据节点的类型相同的,且资源使用信息中空闲资源最多的N个数据节点确定为服务信息中的数据节点。即选择最优数据节点创建数据库实例,实现数据库资源的均衡利用。
当然,在实际应用中,系统也可以提供默认类型选项,如果用户在申请时,没有明确所要申请的数据节点的类型,则为用户分配默认类型的数据节点。
图3示出了本发明具体实施例中调度模块120进行数据节点筛选即根据数据库资源申请请求分配数据节点的流程示意图,主要可以包括以下步骤:
1)调度模块解析资源申请请求的消息,主要包括当前申请的服务等级、CPU、内存的配置规格(所要申请资源的数据库的CPU、内存配置)以及申请的节点数量N。
2)根据解析的内容筛选当前是否存在对应服务等级的数据节点,如果没有则通过控制模块向用户则返回失败,提示资源不足,如果有则进入下一步。
3)筛选空闲CPU、内存资源满足申请需求的数据节点,如果没有则返回失败,资源不足,如果有则进入下一步。
4)对比筛选出的节点数量是否满足申请的数量N,如果不满足则返回失败,资源不足,如果满足则从筛选出来的节点中再筛选出当前资源最空闲即可用资源最多的N个节点,向资源池模块130发送创建数据库实例的消息。
在实际应用中,调度模块120可以使用集群模式实现,例如可以通过分布式服务框架zookeeper实现集群间的数据一致性,并将数据持久化到数据库中。
本发明实施例中,数据库资源申请请求中还可以包括申请的数据库实例的配置信息,该配置信息包括主备实例配置信息和数据库实例的高可用配置信息。此时,资源池模块130所创建的数据库实例包括与主备实例配置信息相对应的主实例和备库实例。资源池模块130还用于根据高可用配置信息对主实例和备库实例进行设置。
本发明实施例的数据库即服务系统,提供了主备复制的数据库实例,为实现数据库的故障切换failover、读写分离(可以通过主实例实现读操作,通过备库实例实现读操作)、容灾等高可用特性提供了基础。用户的数据库资源申请请求中可以包括具体的主备实例数量(例如,单数据库实例,或者一主一备,或者一主多备等配置)、实例配置、版本信息、高可用配置等配置信息。其中,实例配置主要指的是用户申请的数据库的配置,主要涉及数据库内存、硬盘资源的分配等,包括数据库的缓冲区buffer、缓存cache和数据存储空间(如磁盘空间)等。高可用配置指的是在主备实例数量中包括备库实例(一主一备或一主多备)时高可用的设置方案。若申请请求中包括高可用配置时,资源池模块130在创建了对应的主实例和备库实例后,需要根据申请请求中的高可用配置信息对主实例和备库实例进行相应的设置。例如,如果当前角色为备库数据库实例,则需要建立备库实例到主实例的复制关系。
本发明一具体实施例中,资源池模块130的数据节点上可以部署代理agent程序,通过agent程序与系统其他模块进行通信实现数据节点上的数据库实例的快速、自动化部署和动态扩缩。资源池模块130中在有新的数据节点上线时,agent程序会向调度模块120进行注册,将数据节点的地址端口即服务端口、服务等级、可用资源等上报给调度模块120,以使资源模块能够根据该使用信息进行数据节点的资源统计和调度。
本发明一具体实施例中,数据库实例的创建主要可以包括如下流程:
1)解析调度模块创建实例消息,包括分配的数据节点的实例端口、用户名、密码、主备角色(主备实例库的配置)、CPU、内存配置等。
2)创建实例目录,用于存放数据库配置文件、数据文件和日志文件等,一般默认使用实例端口号进行创建。
3)修改标准配置文件模板,根据用户当前申请的数据库规格(是数据库的一个配置选项,用于存储一些共享数据和日志信息)更新表(数据库的一个配置选项,用于存储一些共享数据和日志信息)空间大小、buffer大小等配置;根据所创建的目录路径更新配置文件、数据文件和日志文件的存放路径。
4)调用数据库实例创建命令,根据配置文件创建一个新的数据库实例。
5)调用数据库启动命令,配置用户名、密码,如果当前角色为备库,则建立到主库的复制关系主实例和备库实例两个实例间是数据实时同步的关系,备库会将主库写入的数据实时同步到自身,这个过程需要配置主库的地址,用户等信息。
6)将实例信息通过消息返回给调度模块120。
本发明实施例的数据库即服务系统,通过消息发布订阅机制实现数据库实例快速配置、创建和绑定,通过路由模块实现数据库服务注册,保持服务地址到物理数据库实例地址的映射关系,提供failover,读写分离等特性,资源池模块的底层资源提供基于物理机,虚拟机和容器的数据节点,提供不同的性能和隔离级别的数据库服务,满足不同业务场景的需求。
本发明实施例中,数据库即服务系统还可以包括PaaS平台150,如图4所示。
PaaS平台150,用于为用户提供应用程序服务。
控制模块110,还用于接收用户的应用程序和数据库实例的第一绑定请求,根据该用户的用户信息确定服务信息,根据服务信息和应用程序的信息向调度模块发送第二绑定请求,接收调度模块返回的绑定认证信息,将绑定认证信息返回给用户。
调度模块120,还用于根据接收到的第二绑定请求中的服务信息确定实例信息,根据实例信息和应用程序的信息向资源池模块130发送第三绑定请求,接收资源池模块130返回的绑定认证信息,将绑定认证信息发送给控制模块,并将绑定认证信息和服务信息发送到路由模块140。
资源池模块130,还用于根据第三绑定请求生成实例信息和应用程序的绑定认证信息,将绑定认证信息发送给调度模块120。
PaaS平台150,还用于接收用户的应用程序的配置文件修改请求,根据修改请求中的绑定认证信息修改应用程序的配置文件信息。
路由模块140,还用于接收绑定认证信息和服务信息,建立绑定认证信息和服务信息中的服务端口的映射关系。
本实施例的数据库即服务系统,提供了数据库服务绑定功能,即根据用户需求在对应的数据库实例上创建应用程序的绑定认证信息,将应用程序与数据库实例实现绑定,通过将数据库实例访问的路径动态绑定到应用程序上,并在路由模块中建立绑定认证信息和服务信息中的服务端口的映射关系,使应用程序在后续的使用中能够根据该绑定认证信息实现数据库的快速访问,无需用户手工去配置应用程序所需的数据库信息。
图5示出了本发明具体实施例中数据库服务绑定即应用程序与数据库实例绑定服务的流程示意图,主要可以包括以下步骤:
1)用户发起数据库绑定申请,绑定请求中包括所要绑定的应用程序的信息和用户信息。
2)控制模块对用户令牌token信息进行鉴权,如果失败则返回重新登录信息,如果成功,则根据用户信息和服务信息的关联存储信息,获取该用户的服务信息,并根据获取的服务信息向调度模块发布一条绑定服务的消息。
3)调度模块接收上述绑定服务的消息后,根据调度模块中关联存储的服务信息和实例信息,获取到绑定服务中的服务信息所对应的实例信息,并根据获取的实例信息向对应的数据库实例发送绑定请求。
4)资源池模块接收到绑定请求后,创建请求中的实例信息对应的数据库实例和应用程序的绑定认证信息后,逐步返回给上层消息,最后通过控制模块返回给用户。
5)用户将绑定认证信息通过消息传递给PaaS平台,以使PaaS平台根据绑定认证信息修改对应的应用程序的配置文件信息,实现数据库实例与应用程序的动态绑定。例如,若PaaS平台为cloud froundry,则由cloud froundry的NAT消息服务器动态修改程序的配置文件即manifest文件;若PaaS平台为DCOS,则由DCOS的mesos master动态修改程序的manifest文件。
完成数据库实例与应用程序的动态绑定后,为了使应用程序能够实现对绑定的数据库实例的快速访问,调度模块120还需要将绑定认证信息和服务信息发送到路由模块140,以在路由模块140中建立起绑定认证信息和服务信息中的服务端口的第二映射关系。通过该映射关系,路由模块140在接收到PaaS平台150中的已绑定的应用程序的数据库访问请求时,便可以根据请求中的绑定认证信息确定出对应的服务端口,再根据服务端口和实例端口的第一映射关系,确定出对应的实例端口,以请求资源池模块130启动与该实例端口对应的数据库实例,实现应用程序与数据库实例的链接。
本发明实施例中,PaaS平台150,还用于向路由模块140发送第三数据库访问请求,接收路由模块140返回的访问请求响应信息,其中,第三数据库访问请求中包括应用程序的绑定认证信息。
路由模块140,还用于根据第三数据库访问请求中的绑定认证信息和第二映射关系确定对应的服务端口,根据确定出的服务端口和第一映射关系确定对应的实例端口,根据确定的实例端口向资源池模块130发送第四数据库访问请求,接收资源池模块130返回的访问请求响应信息,并将访问请求响应信息发送给PaaS平台150。
资源池模块130,还用于根据接收到的第四数据库访问请求中的实例端口启动对应的数据库实例,将数据库访问链接成功的访问请求响应信息发送给路由模块140。
基于本发明实施例提供的数据库服务绑定功能,在应用程序的操作过程中,实现了与应用程序绑定的数据库实例的自动化快速启动,实现了应用程序所对应的数据库资源的快速调度使用。
本发明实施例中,数据库即服务系统还可以包括数据监控模块160,如图6所示。
数据监控模块160,用于对资源池模块130中的数据库实例进行心跳监控,在数据库实例信息发生变化时,向调度模块120发送实例变化信息。
调度模块120,还用于接收上述实例变化信息,根据实例变化信息向路由模块140发送实例更新信息。
路由模块140,还用于根据实例更新信息对路由端口和实例端口的映射关系进行相应修改。
数据监控模块160主要对后端的数据库实例进行心跳监控和性能数据采集。当数据库服务激活即调度模块120将实例端口和路由端口向路由模块140注册成功时,由调度模块120通知数据监控模块160对新增的实例进行心跳监控。同样的,当后台实例发生变化时,由数据监控模块将变化通知调度模块120,调度模块120向路由模块140发送消息进行服务与实例的变更,实现数据库服务的高可用。
图7示出了本发明一具体实施例中一种数据库即服务系统的结构示意图。本发明实施例中,控制模块110是整个数据库即服务系统的控制中枢,通过消息与PAAS平台和调度模块进行通信,其具体功能主要包括:
用户认证和访问控制:控制模块的管理数据库中存储用户信息,包括用户账号信息和权限信息。用户登录系统后取得令牌token信息,后续请求通过token信息进行认证和鉴权。
数据库服务管理:提供数据库服务查询、申请、删除和修改等。在完成用户的数据库实例的申请创建后,用户可以通过客户端向控制模块发送数据库服务查询、删除和修改等操作请求。
配置管理:定义了本发明实施例的高中低三类数据库服务等级以及各类配置规格,主要包括数据节点的CPU、内存和存储等配置。
调度模块120主要负责资源池模块的资源统计、调度和服务注册等功能,本实施例中,调度模块120通过zookeeper实现集群的数据一致性,通过统计记录资源池模块三种服务等级数据节点的使用和空闲资源信息,在接收到控制模块发送来数据库资源申请请求时,根据记录的资源使用信息为申请请求创建数据库服务信息,并向资源池模块130发起实例创建请求,由资源池模块130完成数据库实例的创建。路由模块140通过建立数据库服务信息中的服务端口和数据库实例的实例端口之间的映射关系。此外,通过建立PASS平台150中的应用程序APP与数据库实例的绑定关系,并在路由模块中完成服务端口和绑定认证信息的映射关系的建立,使得用户在使用PASS平台提供的对应的应用程序APP时,能够基于建立的绑定关系通过路由模块实现数据库实例的快速调用。
本发明实施例提供的数据库即服务系统,各模块间通过消息发布订阅机制实现数据库实例快速配置、创建和绑定,通过控制模块110,用户可快速申请、创建不同性能和安全等级的数据库服务,然后将数据库服务信息动态绑定到应用程序中。通过调度模块120筛选出能够提供足够资源和等级的数据节点,发送创建数据库实例的请求。通过路由模块140进行实例注册和访问,并提供主备高可用、读写分离等机制。通过资源池模块130的物理机,虚拟机以及docker等容器提供了适用于不同应用场景和安全等级的数据库服务,满足不同业务场景的需求。
基于本发明实施例提供的数据库即服务系统,本发明实施例还提供了一种数据库调度方法,如图8所示。由图中可看出,该数据库调度方法主要可以包括:
步骤S1:接收用户的数据库资源申请请求。
步骤S2:根据数据库资源池中所有数据节点的资源使用信息,为申请请求创建数据库服务信息,将服务信息和用户信息进行关联存储,服务信息包括为申请请求分配的数据库服务端口和数据节点。
步骤S3:依据服务信息,在分配的数据节点为申请请求创建数据库实例,将服务信息和数据库实例的实例信息进行关联存储,实例信息包括实例端口。
本发明实施例中,上述用户的数据库资源申请请求包括但具体的主备实例数量,实例配置,服务等级,版本信息,高可用配置等。接收到用户的上述申请请求中,为了保证数据库的调度安全,可以先对用户的身份信息进行认证即对用户进行鉴权,鉴权通过后再继续后续步骤,否则提示身份认证失败,需要用户重新登录。
在用户身份认证通过后,解析上述申请请求信息的具体内容,并根据数据库资源池中所有数据节点的资源使用信息为该请求分配最佳的数据节点,即与申请的数据节点的类型相同的,且资源使用信息中空闲资源最多的数据节点,之后为申请请求创建数据库服务信息。本发明实施例中,数据库服务可以包括数据库服务ip、数据库服务端口、用户名、密码等信息以及分配的数据节点信息。完成数据库服务信息的创建后,即可依据创建的数据库服务信息,在分配的数据节点为申请请求创建数据库实例,
本发明实施例,上述数据库调度方法还可以包括:
建立并存储服务端口和实例端口的第一映射关系;
接收用户的数据库访问请求,根据数据库访问请求中的服务信息和第一映射关系,确定出对应的实例端口。
根据确定出的实例端口启动对应的数据库实例。
在完成数据库实例的创建后,通过建立数据库实例的实例端口与数据库服务信息的服务端口的映射关系,实现了服务地址到数据库实例地址的映射。
本发明实施例中,上述数据库调度方法方法还可以包括:
接收用户的应用程序和数据库实例的绑定请求,绑定请求中包括请求绑定的应用程序的信息。
根据服务信息和用户信息的关联存储信息,确定用户的服务信息,根据服务信息和实例信息的关联存储信息,确定实例信息。
创建应用程序和确定出的实例信息的绑定认证信息,建立绑定认证信息和服务信息中的服务端口的第二映射关系,将绑定认证信息返回给用户。
接收用户的应用程序的配置文件修改请求,修改请求中包括绑定认证信息。
根据修改请求中的绑定认证信息修改应用程序的配置文件信息,完成应用程序和实例信息的绑定。
本发明实施例中,上述数据库调度方法还可以包括:
接收用户的应用程序的数据库访问请求,应用程序的数据库访问请求中包括应用程序的绑定认证信息。
根据应用程序的数据库访问请求中的绑定认证信息和第二映射关系,确定出对应的服务端口。
根据第一映射关系和确定出的服务端口确定对应的实例端口。
根据确定出的实例端口启动对应的数据库实例。
本发明实施例中,通过建立应用程序和数据库实例的绑定关系,在用户使用上述应用程序时,应用程序便可以根据绑定认证信息和上述第一映射关系和第二映射关系,自动完成与其绑定的数据库实例的启动,实现了应用程序对数据库实例的快速访问,提高了应用程序的响应数据。
结合图1至图8描述的数据库即服务系统和数据库调度方法的至少一部分可以由计算设备实现。图9示出了本发明实施例的计算设备的示意性结构框图。如图9所示,计算设备900可以包括输入设备901、输入接口902、中央处理器903、存储器904、输出接口905、以及输出设备906。其中,输入接口902、处理器903、存储器904、以及输出接口905通过总线910相互连接,输入设备901和输出设备906分别通过输入接口902和输出接口905与总线910连接,进而与计算设备900的其他组件连接。具体地,输入设备901接收来自外部的输入信息,并通过输入接口902将输入信息传送到处理器903;处理器903基于存储器904中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器904中,然后通过输出接口905将输出信息传送到输出设备906;输出设备906将输出信息输出到计算设备900的外部供用户使用。
也就是说,图9所示的计算设备900可以被实现为数据库调度设备,该数据库调度设备可以包括处理器903和存储器904。该存储器904用于储存有可执行程序代码;处理器903用于读取存储器中存储的可执行程序代码以执行本发明实施例的数据库调度方法。
本发明实施例还提供了一种可读存储介质,上述可读存储介质中存储有计算机指令,当上述计算机指令被存储器执行时,使得处理器执行本发明实施例的数据库调度方法。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本发明的基本精神。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本发明的范围之中。
Claims (9)
1.一种数据库即服务系统,其特征在于,所述系统包括:
控制模块,用于接收用户的数据库资源申请请求,将所述申请请求发送到调度模块,接收调度模块返回的与所述申请请求对应的数据库服务信息,将所述服务信息和用户信息关联存储,所述服务信息包括调度模块分配的数据库服务端口和数据节点;
调度模块,用于记录资源池模块中所有数据节点的资源使用信息,根据所述资源使用信息为所述申请请求创建数据库服务信息,根据所述服务信息向资源池模块发送数据库实例创建请求,接收资源池模块返回的数据库实例信息,将所述服务信息和所述实例信息关联存储,将所述服务信息发送给控制模块,所述实例信息包括实例端口;
资源池模块,用于提供数据库实例运行的数据节点,将数据节点的资源使用信息向调度模块注册;还用于根据接收到的所述实例创建请求在调度模块分配的数据节点创建数据库实例,将数据库实例信息发送给调度模块;
所述调度模块,还用于向路由模块发送所述服务信息和所述实例信息的注册请求;
路由模块,用于根据接收到的所述注册请求建立并存储所述服务端口和所述实例端口的第一映射关系;还用于接收用户的第一数据库访问请求时,根据第一数据库访问请求中的服务端口和所述第一映射关系,确定出对应的实例端口,根据确定出的实例端口向所述资源池模块发送第二数据库访问请求;
所述资源池模块,还用于根据所述第二数据库访问请求中的实例端口启动相应的数据库实例;
PaaS平台,用于为用户提供应用程序服务;
所述控制模块,还用于接收所述用户的应用程序和数据库实例的第一绑定请求,根据所述用户的用户信息确定所述服务信息,根据所述服务信息和所述应用程序的信息向调度模块发送第二绑定请求,接收调度模块返回的绑定认证信息,将绑定认证信息返回给所述用户;
所述调度模块,还用于根据接收到的所述第二绑定请求中的所述服务信息确定对应的实例信息,根据确定的实例信息和所述应用程序的信息向资源池模块发送第三绑定请求,接收资源池模块返回的所述绑定认证信息,将绑定认证信息发送给控制模块,并将所述绑定认证信息和所述服务信息发送到路由模块;
所述资源池模块,还用于根据所述第三绑定请求生成所述实例信息和所述应用程序的绑定认证信息,将所述绑定认证信息发送给调度模块;
所述PaaS平台,还用于接收用户的所述应用程序的配置文件修改请求,根据所述修改请求中的所述绑定认证信息修改所述应用程序的配置文件信息;
所述路由模块,还用于接收所述绑定认证信息和所述服务信息,建立所述绑定认证信息和所述服务信息中的服务端口的第二映射关系。
2.根据权利要求1所述的系统,其特征在于,
所述PaaS平台,还用于向路由模块发送第三数据库访问请求,接收路由模块返回的访问请求响应信息,其中,所述第三数据库访问请求中包括应用程序的绑定认证信息;
所述路由模块,还用于根据第三数据库访问请求中的绑定认证信息和所述第二映射关系确定对应的服务端口,根据确定出的服务端口和所述第一映射关系确定对应的实例端口,根据确定的实例端口向资源池模块发送第四数据库访问请求,接收资源池模块返回的访问请求响应信息,并将所述访问请求响应信息发送给PaaS平台;
所述资源池模块,还用于根据接收到的所述第四数据库访问请求中的实例端口启动对应的数据库实例,将数据库访问链接成功的访问请求响应信息发送给路由模块。
3.根据权利要求1至2中任一项所述的系统,其特征在于,所述数据节点的类型包括物理机资源节点、虚拟机资源节点或容器资源节点;
所述申请请求中包括申请的数据节点的类型和数据节点的数量N;
所述调度模块,具有用于根据所述申请的数据节点的类型,将资源池模块中与所述申请的数据节点的类型相同,且所述资源使用信息中空闲资源最多的N个数据节点确定为所述服务信息中分配的数据节点。
4.根据权利要求1至2中任一项所述的系统,其特征在于,所述申请请求中包括申请的数据库实例的配置信息,所述配置信息包括的主备实例配置信息和数据库实例的高可用配置信息;
所述数据库实例包括与所述主备实例配置信息相对应的主实例和备库实例;
所述资源池模块,还用于根据所述高可用配置信息对所述主实例和备库实例进行设置。
5.根据权利要求1至2中任一项所述的系统,其特征在于,所述系统还包括:
数据监控模块,用于对资源池模块中的数据库实例进行心跳监控,在数据库实例信息发生变化时,向调度模块发送实例变化信息;
所述调度模块,还用于接收所述实例变化信息,根据所述实例变化信息向路由模块发送实例更新信息;
所述路由模块,还用于根据所述实例更新信息对相应的服务端口和实例端口的第一映射关系进行修改。
6.一种数据库调度方法,其特征在于,所述数据库调度方法包括:
接收用户的数据库资源申请请求;
根据数据库资源池中所有数据节点的资源使用信息,为所述申请请求创建数据库服务信息,将所述服务信息和用户信息进行关联存储,所述服务信息包括为所述申请请求分配的数据库服务端口和数据节点;
依据所述服务信息,在分配的数据节点为所述申请请求创建数据库实例,将所述服务信息和所述数据库实例的实例信息进行关联存储,所述实例信息包括实例端口;建立并存储所述服务端口和所述实例端口的第一映射关系;
接收用户的数据库访问请求,根据数据库访问请求中的服务信息和所述第一映射关系,确定出对应的实例端口;
根据确定出的实例端口启动对应的数据库实例;接收所述用户的应用程序和数据库实例的绑定请求,所述绑定请求中包括请求绑定的所述应用程序的信息;
根据所述服务信息和用户信息的关联存储信息,确定所述用户的所述服务信息,根据所述服务信息和所述实例信息的关联存储信息,确定所述实例信息;
创建所述应用程序和确定出的所述实例信息的绑定认证信息,建立所述绑定认证信息和所述服务信息中的所述服务端口的第二映射关系,将所述绑定认证信息返回给所述用户;
接收所述用户的所述应用程序的配置文件修改请求,所述修改请求中包括所述绑定认证信息;
根据所述修改请求中的所述绑定认证信息修改所述应用程序的配置文件信息,完成所述应用程序和所述实例信息的绑定。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收用户的应用程序的数据库访问请求,所述应用程序的数据库访问请求中包括应用程序的绑定认证信息;
根据应用程序的数据库访问请求中的绑定认证信息和所述第二映射关系,确定出对应的服务端口;
根据所述第一映射关系和确定出的服务端口确定对应的实例端口;
根据确定出的实例端口启动对应的数据库实例。
8.一种数据库调度设备,包括存储器和处理器;
所述存储器用于储存可执行程序代码;
所述处理器用于读取所述存储器中存储的可执行程序代码以执行权利要求6至7中任一项所述的数据库调度方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求6至7中任一项所述的数据库调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710860349.6A CN109542611B (zh) | 2017-09-21 | 2017-09-21 | 数据库即服务系统、数据库调度方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710860349.6A CN109542611B (zh) | 2017-09-21 | 2017-09-21 | 数据库即服务系统、数据库调度方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542611A CN109542611A (zh) | 2019-03-29 |
CN109542611B true CN109542611B (zh) | 2021-05-14 |
Family
ID=65827937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710860349.6A Active CN109542611B (zh) | 2017-09-21 | 2017-09-21 | 数据库即服务系统、数据库调度方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542611B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187912B (zh) | 2019-05-16 | 2022-03-29 | 华为技术有限公司 | 一种节点选择方法和装置 |
WO2020258249A1 (zh) * | 2019-06-28 | 2020-12-30 | 华为技术有限公司 | 数据库访问方法和装置、计算设备和计算机程序产品 |
CN114880698B (zh) * | 2019-06-29 | 2022-11-25 | 华为云计算技术有限公司 | 数据库访问方法和装置、计算设备和计算机程序产品 |
CN110471884A (zh) * | 2019-08-19 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 数据管理方法、装置、设备、系统及计算机可读存储介质 |
CN111083210A (zh) * | 2019-12-05 | 2020-04-28 | 浩云科技股份有限公司 | 流媒体服务调度方法及系统 |
CN111104126A (zh) * | 2019-12-09 | 2020-05-05 | 海尔优家智能科技(北京)有限公司 | 用于部署应用的方法及装置、服务器、系统 |
CN113391796B (zh) * | 2020-03-13 | 2024-01-30 | 华为云计算技术有限公司 | 一种集成开发环境的构建方法、装置、设备及介质 |
CN111708632A (zh) * | 2020-05-19 | 2020-09-25 | 中国人民财产保险股份有限公司 | 一种云资源管理方法及装置 |
CN112015521A (zh) * | 2020-09-30 | 2020-12-01 | 北京百度网讯科技有限公司 | 推理服务的配置方法、装置、电子设备及存储介质 |
CN112667711B (zh) * | 2020-12-29 | 2022-12-27 | 浪潮云信息技术股份公司 | 一种MySQL只读实例管理方法、系统及计算机可读介质 |
CN113515499B (zh) * | 2021-03-25 | 2023-04-28 | 中国雄安集团数字城市科技有限公司 | 一种数据库服务方法及系统 |
CN112988874A (zh) * | 2021-04-08 | 2021-06-18 | 海南车智易通信息技术有限公司 | 一种数据处理方法、系统、计算设备及可读存储介质 |
CN113341864A (zh) * | 2021-06-07 | 2021-09-03 | 重庆高新技术产业研究院有限责任公司 | 一种基于plc的控制相似性可逆向逻辑系统及其分析方法 |
CN113420306A (zh) * | 2021-06-16 | 2021-09-21 | 深圳国泰安教育技术有限公司 | 资源共享方法、装置、计算设备及计算机可读存储介质 |
CN113468182B (zh) * | 2021-07-14 | 2022-09-20 | 广域铭岛数字科技有限公司 | 一种数据存储方法及系统 |
CN113704354B (zh) * | 2021-08-30 | 2023-10-20 | 康键信息技术(深圳)有限公司 | 一种数据同步方法及装置、计算机设备、存储介质 |
CN113992574B (zh) * | 2021-09-30 | 2023-04-25 | 济南浪潮数据技术有限公司 | 一种设置路由器绑定节点优先级方法、系统及设备 |
CN116049136B (zh) * | 2022-12-21 | 2023-07-28 | 广东天耘科技有限公司 | 基于云计算平台的MySQL集群部署方法和系统 |
CN116909581B (zh) * | 2023-09-11 | 2024-01-26 | 中移(苏州)软件技术有限公司 | HBase服务多实例的管理方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100456721C (zh) * | 2006-08-03 | 2009-01-28 | 上海宝钢钢材贸易有限公司 | 内联网结构以及建立内联网的方法 |
CN102546771A (zh) * | 2011-12-27 | 2012-07-04 | 西安博构电子信息科技有限公司 | 基于特征模型的云挖掘网络舆情监测系统 |
CN103023986B (zh) * | 2012-11-27 | 2016-01-13 | 中国电信股份有限公司 | 一种对多用户提供rdbms服务的系统和方法 |
US10355952B2 (en) * | 2015-04-27 | 2019-07-16 | Oracle International Corporation | Automatic upstream service resumption after downstream system failure |
-
2017
- 2017-09-21 CN CN201710860349.6A patent/CN109542611B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109542611A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542611B (zh) | 数据库即服务系统、数据库调度方法、设备及存储介质 | |
US10965752B1 (en) | Live migration of clusters in containerized environments | |
US11321348B2 (en) | Provisioning and managing replicated data instances | |
CN113169952B (zh) | 一种基于区块链技术的容器云管理系统 | |
US9015177B2 (en) | Dynamically splitting multi-tenant databases | |
US9043370B2 (en) | Online database availability during upgrade | |
US9521194B1 (en) | Nondeterministic value source | |
US20120102480A1 (en) | High availability of machines during patching | |
CN108027828B (zh) | 与无状态同步节点的托管文件同步 | |
CN112445570A (zh) | 一种云平台资源迁移方法及其装置、存储介质 | |
KR101714412B1 (ko) | 클라우드 환경에서 데이터베이스 시스템을 구성하는 방법 및 장치 | |
US11921699B1 (en) | Lease-based consistency management for handling failover in a database | |
US11290318B2 (en) | Disaster recovery of cloud resources | |
US10157124B1 (en) | Method, apparatus, and system for managing data storage with an application programming interface | |
US11121981B1 (en) | Optimistically granting permission to host computing resources | |
US9841929B1 (en) | Distributed system software infrastructure | |
US11947555B1 (en) | Intelligent query routing across shards of scalable database tables | |
US20240086559A1 (en) | Permission synchronization across computing sites | |
US11586626B1 (en) | Optimizing cloud query execution | |
US11588801B1 (en) | Application-centric validation for electronic resources | |
US20230403324A1 (en) | Data sharing system, data sharing method and non-transitory computer-readable recording medium for data sharing program | |
US10223019B1 (en) | Policy-driven volume expansion | |
CN117389713A (zh) | 存储系统应用业务数据迁移方法、装置、设备及介质 | |
KR20230099983A (ko) | 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법 | |
JP2023532138A (ja) | イメージ配布方法、電子機器及び記憶媒体 |
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 |