CN102982141B - 一种实现分布式数据库代理的方法及装置 - Google Patents
一种实现分布式数据库代理的方法及装置 Download PDFInfo
- Publication number
- CN102982141B CN102982141B CN201210473158.1A CN201210473158A CN102982141B CN 102982141 B CN102982141 B CN 102982141B CN 201210473158 A CN201210473158 A CN 201210473158A CN 102982141 B CN102982141 B CN 102982141B
- Authority
- CN
- China
- Prior art keywords
- database
- configuration information
- connection
- target database
- name
- 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
Abstract
本发明公开了一种实现分布式数据库代理的方法及装置以实现在数据库变化时不影响客户端访问的目的,包括:通过监听数据库配置信息的变化,更新所保存的数据库配置信息,所述配置信息至少包括数据库名称、其对应的IP地址和端口;接收客户端对目标数据库的连接请求,获得目标数据库名称;若目标数据库名称在所保存的数据库配置信息中,根据目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接,实现了在后端数据库变化时,跟随后端数据库变化及时更新数据库的配置信息,不影响客户端的访问。
Description
技术领域
本发明涉及分布式数据库领域,特别涉及一种实现分布式数据库代理的方法及装置。
背景技术
数据库代理是介于数据库客户端和服务器之间,主要起请求转发作用的实体。客户端使用各个数据库时,不需要知道后端数据库服务器的IP和端口,只需要知道数据库代理的IP和端口,以及需要使用的数据库用户名、密码和数据库名,通过数据库代理即可访问数据库。例如,MySQLProxy数据库代理。
随着数据库应用规模的扩大,分布式数据库越来越得到广泛应用,对于分布式数据库来说,某个局部的数据库可能会随时出现增加或者删除等变化,但是,由于一般数据库代理只能静态配置一组数据库,在某个局部数据库增加时,客户端无法及时访问到该数据库,因此无法满足分布式数据库代理的需求。
发明内容
有鉴于此,本发明的主要目的在于提供一种实现分布式数据库代理的方法及装置以实现在数据库变化时不影响客户端访问的目的。
本发明提供的一种实现分布式数据库代理的方法,包括:
通过监听数据库配置信息的变化,更新所保存的数据库配置信息,所述配置信息至少包括数据库名称、其对应的IP地址和端口;
接收客户端对目标数据库的连接请求,获得目标数据库名称;
若目标数据库名称在所保存的数据库配置信息中,根据目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接。
可选地,所述通过监听数据库配置信息,更新所保存的数据库配置信息具体实现为:
读取所保存的数据库配置信息;
根据所述数据库配置信息,访问该数据库;
如果访问失败,删除该数据库配置信息;
如果访问正常,接收返回的更新数据库配置信息,更新该数据库配置信息。
可选地,该方法还包括获得所保存的数据库配置信息的步骤:
接收数据库配置信息的注册请求,所述数据库配置信息至少包括数据库名称、IP地址和端口;
为该数据库配置信息分配存储空间,保存该数据库配置信息。
可选地,所述通过监听数据库配置信息,更新所保存的数据库配置信息具体实现为:
监听ZooKeeper发出的数据库节点状态变化的通知;
在监听到所述通知时,读取ZooKeeper上保存的数据库节点的配置信息;
更新数据库配置信息。
可选地,该方法还包括:若目标数据库名称不在数据库配置信息中,向客户端返回数据库信息不存在错误。
可选地,所述根据目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接具体实现为:
查询是否存在目标数据库名称对应的连接池;
如果存在,从目标数据库名称对应的连接池中取出空闲连接,通过该空闲连接建立客户端与目标数据库的连接,并且将该空闲连接状态设置为繁忙,其中,所述空闲连接具体根据数据库配置信息中该目标数据库名称对应的IP地址和端口创建;
如果不存在,根据数据库配置信息中该目标数据库名称对应的IP地址和端口创建目标数据库名称对应的连接池,其中所述连接池包含最小连接数个空闲连接,从该连接池中取出空闲连接,通过该空闲连接建立客户端与目标数据库的连接,并且将该空闲连接状态设为繁忙。
可选地,所述从目标数据库名称对应的连接池中取出空闲连接,具体实现为:
判断目标数据库名称对应的连接池中是否有空闲连接;
如果有,从目标数据库名称对应的连接池中取出空闲连接;
如果没有,判断目标数据库名称对应的连接池中的连接数是否小于最大连接数阈值,如果是,在该连接池中增加与目标数据库的空闲连接,从该连接池中取出空闲连接。
可选地,在建立客户端与目标数据库的连接之后,还可以包括:
接收客户端断开与目标数据库连接的请求;
根据所述请求,断开与客户端的连接,将与目标数据库的连接放回目标数据名称对应的连接池,并且将该连接状态设置为空闲。
可选地,该方法还包括:
计算所述连接池内的空闲连接的空闲时间;
查询出空闲时间超过预设空闲时间阈值的空闲连接;
若所查询出的空闲连接所在连接池内的连接个数大于最小连接数阈值,则将所查询出的空闲连接从连接池内删除。
可选地,所述数据库配置信息还可以包括用户名和密码;
所述接收客户端对数据库的连接请求,获得目标数据库名称时,还获得客户端的用户名和密码;
在建立客户端与目标数据库的连接之前,还将客户端的用户名和密码与数据库配置信息中的用户名和密码进行匹配;
所述建立客户端与目标数据库的连接具体在匹配正确时,建立客户端与目标数据库的连接。
可选地,所述建立客户端与目标数据库的连接之后,还可以包括;
根据目标数据库协议,生成包含用户名和密码的认证信息,发送给目标数据库的服务器;
接收目标数据库的服务器返回的认证通过信息,向客户端返回认证通过信息。
可选地,该方法还包括在所述数据库配置信息中设置数据库名称对应的IP白名单;
在接收客户端对目标数据库的连接请求时,还获得客户端的IP地址;
所述建立客户端与目标数据库的连接具体在客户端的IP地址在目标数据库名称对应的IP白名单中时建立;
若客户端的IP地址不再目标数据库名称对应的IP白名单中,向客户端返回错误信息。
可选地,在建立客户端与目标数据库的连接之后,还包括:
接收客户端对目标数据库的操作指令;
将所述操作指令发送到目标数据库。
可选地,该方法还包括在所述数据库配置信息中设置数据库名称对应的指令白名单;
还通过解析操作指令判断该操作指令是否在目标数据库名称对应的指令白名单中;
所述将操作指令发送到目标数据库具体在该操作指令在目标数据库名称对应的指令白名单中时发送。
可选地,所述数据库配置信息还可以包括数据库名称对应读操作或者写操作的信息;
还通过解析操作指令,判断该操作指令为读操作还是写操作;
如果是读操作,所述将操作指令发送到目标数据库具体发送到数据库配置信息中目标数据库名称对应读操作的IP地址和端口的目标数据库;
如果是写操作,所述将操作指令发送到目标数据库具体发送到数据库配置信息中目标数据库名称对应写操作的IP地址和端口的目标数据库。
本发明还提供一种实现分布式数据库代理的装置,包括:
配置信息更新单元:用于通过监听数据库配置信息的变化,更新所保存的数据库配置信息,所述数据库配置信息至少包括数据库名称,其对应的IP地址和端口;
接收单元:用于接收客户端对目标数据库的连接请求,获得目标数据库名称;
验证单元:用于判断目标数据库名称是否在所保存的数据库配置信息中,如果在,根据目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接。
可选地,该装置还包括:ZooKeeper分布式协调单元:用于保存数据库配置信息,在数据库节点变化时,向配置信息更新单元发出数据库节点变化的通知;
所述配置信息更新单元:具体用于通过监听ZooKeeper分布式协调单元发出的数据库节点变化通知确定数据库配置信息的变化,在监听到所述通知时,读取ZooKeeper上保存的数据库节点的配置信息,更新数据库配置信息。
可见本发明具有如下有益效果:
由于后端数据库发生变化的同时,数据库配置信息也会发生相应地变化,本发明通过监听数据库配置信息的变化,在数据库发生变化时,例如,增加、删除数据库,更改数据库IP地址、端口等,可以及时获得更新的数据库配置信息,进而,在接收客户端对目标数据库的连接请求时,可以及时根据更新的数据库配置信息获得该目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接,实现了在后端数据库变化时,跟随后端数据库变化及时更新数据库的配置信息,不影响客户端的访问。
附图说明
图1是本发明提供的一种实现分布式数据库代理的方法一实施例流程图;
图2是本发明提供的一种实现分布式数据库代理的装置一实施例组成图;
图3是本发明提供的一种实现分布式数据库代理的装置另一实施例组成图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
参见图1,为本发明提供的一种实现分布式数据库代理的方法的流程图,如图所示,该方法包括:
S101、通过监听数据库配置信息的变化,更新所保存的数据库配置信息,所述数据库配置信息至少包括数据库名称、其对应的IP地址和端口;
S102、接收客户端对目标数据库的连接请求,获得目标数据库名称;
S103、若目标数据库名称在所保存的数据库配置信息中,根据目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接。
可以理解的是,后端数据库发生变化的同时,数据库配置信息也会发生相应地变化,因此,应用该实施例提供的方法,通过监听数据库配置信息的变化,在数据库发生变化时,例如,增加、删除数据库,更改数据库IP地址、端口等,可以及时获得更新的数据库配置信息,进而,在接收客户端对目标数据库的连接请求时,可以及时根据更新的数据库配置信息获得该目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接,实现了在后端数据库变化时,跟随后端数据库变化及时更新数据库的配置信息,不影响客户端的访问。
下面,对步骤S101、通过监听数据库配置信息的变化,更新所保存的数据库配置信息的具体实现进行详细解释:
一种实现方式,例如,可以包括:
读取所保存的数据库配置信息;
根据所述数据库配置信息,访问该数据库;
如果访问失败,删除该数据库配置信息;
如果访问正常,接收返回的更新数据库配置信息,更新该数据库配置信息。
在该实现方式中,还包括以下获得所保存的数据库配置信息的步骤:
接收数据库配置信息的注册请求,所述数据库配置信息至少包括数据库名称、IP地址和端口;
为该数据库配置信息分配存储空间,保存该数据库配置信息。
另一种实现方式,例如,可以利用ZooKeeper开源分布式协调系统监听在ZooKeeper上保存了配置信息的数据库节点的变化,获得保存在ZooKeeper上的更新的数据库配置信息,在这里,需要说明的是,ZooKeeper主要用于提供数据库注册节点,ZooKeeper和数据库通过周期性的通信自动更新数据库配置信息,通过ZooKeeper可以监听数据库节点的变化,当监听到数据库节点有变化时,如配置信息改变、节点删除或增加等,ZooKeeper会发出数据库节点变化的通知,因此,步骤S101所述通过监听数据库配置信息的变化,更新所保存的数据库配置信息具体实现可以包括:
通过监听ZooKeeper发出的数据库节点变化的通知,确定数据库配置信息的变化;
在监听到所述通知时,读取ZooKeeper上保存的数据库节点的配置信息;
更新数据库配置信息。
而且,该方法还可以包括:若目标数据库名称不在数据库配置信息中,向客户端返回数据库信息不存在错误。
在本发明的一个优选实施例中,为了提高客户端与目标数据库的连接速度,还可以通过建立连接池,复用连接池内的空闲连接以节省客户端与目标数据库的连接时间,具体地,例如:步骤S103、根据目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接具体实现可以包括:
S103.1、查询是否存在目标数据库名称对应的连接池;
S103.2、如果存在,从目标数据库名称对应的连接池中取出空闲连接,通过该空闲连接建立客户端与目标数据库的连接,并且将该空闲连接状态设为繁忙,其中,所述空闲连接具体根据数据库配置信息中该目标数据库名称对应的IP地址和端口创建;
S103.3、如果不存在,根据数据库配置信息中该目标数据库名称对应的IP地址和端口创建目标数据库名称对应的连接池,其中所述连接池包含最小连接数个空闲连接,从该连接池中取出空闲连接,通过该空闲连接建立客户端与目标数据库的连接,并且将该空闲连接状态设为繁忙。
其中,步骤S103.2所述从目标数据库名称对应的连接池中取出空闲连接,具体实现可以为:
S103.2a、判断目标数据库名称对应的连接池中是否有空闲连接;
S103.2b、如果有,从目标数据库名称对应的连接池中取出空闲连接;
S103.2c、如果没有,判断目标数据库名称对应的连接池中的连接数是否小于最大连接数阈值,如果是,在该连接池中增加与目标数据库的空闲连接,从该连接池中取出空闲连接。
可以理解的是,如果该数据库名称对应的连接池中的连接数不小于最大连接数阈值,可以向客户端返回无空闲连接信息。
相应地,步骤S103.3所述建立该数据库名称对应的连接池时,还可以设置该连接池最大连接数阈值。
而且,在该实施例中,在客户端与目标数据库断开连接时,还可以将该连接放回连接池以待复用,具体实现可以为:
在建立客户端与目标数据库的连接之后,还可以包括:
接收客户端断开与目标数据库连接的请求;
根据所述请求,断开与客户端的连接,将与目标数据库的连接放回目标数据库名称对应的连接池,并且将该连接状态设置为空闲。
考虑到若连接池内的空闲连接空闲时间过长,将导致连接资源的浪费,因此,还可以通过预设空闲时间阈值,将空闲时间过长的空闲连接撤销以节省连接资源,具体实现可以为:
计算所述连接池内的空闲连接的空闲时间;
查询出空闲时间超过预设空闲时间阈值的空闲连接;
若所查询出的空闲连接所在连接池内的连接个数大于最小连接数阈值,则将该查询出的空闲连接从连接池内删除。
另外,还可以在后端数据库删除时,及时跟随删除所建立的连接池,以实现及时更新数据库的配置,具体实现可以为:
在步骤S101获得更新的数据库配置信息后,还可以将配置信息中的数据库名称与所有连接池对应的数据库名称比较,将不在配置信息中的数据库名称对应的连接池删除。
另外,本发明提供的方法还可以包括验证客户端认证信息的步骤,例如:
该方法中所述的数据库配置信息还可以包括用户名和密码;
其中步骤S102、接收客户端对目标数据库的连接请求,获得目标数据库名称时,还获得客户端的用户名和密码;
在步骤S103建立客户端与目标数据库的连接之前,还将客户端的用户名和密码与数据库配置信息中的用户名和密码进行匹配;
所述步骤S103建立客户端与目标数据库的连接具体在匹配正确时,建立客户端与目标数据库的连接;
若匹配不正确,还可以返回用户名、密码错误信息。
其中,步骤S103建立客户端与目标数据库的连接之后,还可以包括:
根据目标数据库协议,生成包含用户名和密码的认证信息,发送给该数据库的服务器;
接收该数据库的服务器返回的认证通过信息,向客户端返回认证通过信息。
本发明提供的方法还可以实现限制非法客户端连接、转发客户端对目标数据库的操作指令,限制非法操作指令、读写分离等功能,具体地,例如:
实现非法客户端连接的具体实现为:
可以在数据库配置信息中设置数据库名称对应的IP白名单,在步骤S102接收客户端对目标数据库的连接请求时,还可以获得客户端的IP地址,所述步骤S103具体在客户端的IP地址在目标数据库名称对应的IP白名单中时,建立客户端与目标数据库的连接;若不在目标数据库名称对应的IP白名单中时,向客户端返回错误信息;
转发客户端对目标数据库的操作指令的具体实现为:
在步骤S103建立客户端与目标数据库的连接之后,还可以包括:
接收客户端对目标数据库的操作指令;
将所述操作指令发送到目标数据库。
在该转发客户端对目标数据库的操作指令的实施例中,还可以限制非法操作指令的转发,具体实现为:
可以在数据库配置信息中设置数据库名称对应的指令白名单;
还可以通过解析操作指令判断该操作指令是否在目标数据库名称对应的指令白名单中;
所述将操作指令发送到目标数据库具体在该操作指令在目标数据库名称对应的指令白名单中时发送。
可以理解的是,若操作指令不在目标数据库名称对应的指令白名单中,可以向客户端返回操作指令受禁错误。
在该转发客户端对目标数据库操作指令的实施例中,结合分布式数据库读写分离的特点,还可以将客户端读操作对应的操作指令发送到负责读操作的数据库,将客户端写操作对应的操作指令发送到负责写操作的数据库,具体地,所述数据库配置信息还可以包括数据库名称对应读操作或者写操作的信息,例如,读操作的信息为从库,写操作的信息为主库,具体实现可以包括;
通过解析操作指令判断该操作指令为读操作还是写操作,例如,在SQL中,SELECT指令为读操作,其他指令可以默认为写操作;
如果是读操作,所述将操作指令发送到目标数据库具体发送到数据库配置信息中目标数据库名称对应读操作的IP地址和端口的目标数据库,例如:如果是SELECT操作指令,可以将操作指令发送到数据库配置信息中目标数据库名称对应从库的IP地址和端口的目标数据库;
如果是写操作,所述将操作指令发送到目标数据库具体发送到数据库配置信息中目标数据库名称对应写操作的IP地址和端口的目标数据库,例如:如果是非SELECT操作指令,可以将操作指令发送到数据库配置信息中目标数据库名称对应主库的IP地址和端口的目标数据库。
在本发明具体实施时,还可以在转发客户端的访问请求时,通过从后端数据库服务器获取数据库性能数据,以及统计流量和连接数等数据库资源状态,根据数据库资源状态阈值,判断当前客户端对数据库访问请求对应的数据库资源状态是否超出阈值,如果超出阈值,可以限制客户端对数据库的访问请求。
参见图2,本发明还提供一种实现分布式数据库代理的装置,如图所示,该装置包括:
配置信息更新单元201:用于通过监听数据库配置信息的变化,更新所保存的数据库配置信息,所述数据库配置信息至少包括数据库名称,其对应的IP地址和端口;
接收单元202:用于接收客户端对目标数据库的连接请求,获得目标数据库名称;
验证单元203:用于判断目标数据库名称是否在所保存的数据库配置信息中,如果在,根据目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接。
参见图3,所述一种实现分布式数据库代理的装置,还可以包括:
ZooKeeper分布式协调单元304:用于保存数据库配置信息,在数据库节点变化时,向配置信息更新单元301发出数据库节点变化的通知;
所述配置信息更新单元301:具体用于通过监听ZooKeeper分布式协调单元发出的数据库节点变化通知确定数据库配置信息的变化,在监听到所述通知时,读取ZooKeeper上保存的数据库节点的配置信息,更新数据库配置信息。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (14)
1.一种实现分布式数据库代理的方法,其特征在于,包括:
通过监听数据库配置信息的变化,更新所保存的数据库配置信息,所述数据库配置信息至少包括数据库名称、其对应的IP地址和端口;
其中,所述数据库配置信息还包括:数据库名称对应的IP白名单和/或数据库名称对应的指令白名单;
接收客户端对目标数据库的连接请求,获得目标数据库名称;
若目标数据库名称在所保存的数据库配置信息中,根据目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接;
其中,当所述数据库配置信息包括数据库名称对应的IP白名单时,在接收客户端对目标数据库的连接请求时,还获得客户端的IP地址,所述建立客户端与目标数据库的连接具体在客户端的IP地址在目标数据库名称对应的IP白名单中时建立;
当所述数据库配置信息包括数据库名称对应的指令白名单时,在建立客户端与目标数据库的连接之后,还接收客户端对目标数据库的操作指令,将所述操作指令发送到目标数据库,所述将操作指令发送到目标数据库具体在该操作指令在目标数据库名称对应的指令白名单中时发送。
2.根据权利要求1所述的方法,其特征在于,所述通过监听数据库配置信息,更新所保存的数据库配置信息具体实现为:
读取所保存的数据库配置信息;
根据所述数据库配置信息,访问该数据库;
如果访问失败,删除该数据库配置信息;
如果访问正常,接收返回的更新数据库配置信息,更新该数据库配置信息。
3.根据权利要求2所述的方法,其特征在于,还包括获得所保存的数据库配置信息的步骤:
接收数据库配置信息的注册请求,所述数据库配置信息至少包括数据库名称、IP地址和端口;
为该数据库配置信息分配存储空间,保存该数据库配置信息。
4.根据权利要求1所述的方法,其特征在于,所述通过监听数据库配置信息,更新所保存的数据库配置信息具体实现为:
通过监听ZooKeeper发出的数据库节点变化的通知,确定数据库配置信息的变化;
在监听到所述通知时,读取ZooKeeper上保存的数据库节点的配置信息;
更新数据库配置信息。
5.根据权利要求1所述的方法,其特征在于,还包括:若目标数据库名称不在数据库配置信息中,向客户端返回数据库信息不存在错误。
6.根据权利要求1所述的方法,其特征在于,所述根据目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接具体实现为:
查询是否存在目标数据库名称对应的连接池;
如果存在,从目标数据库名称对应的连接池中取出空闲连接,通过该空闲连接建立客户端与目标数据库的连接,并且将该空闲连接状态设置为繁忙,其中,所述空闲连接具体根据数据库配置信息中该目标数据库名称对应的IP地址和端口创建;
如果不存在,根据数据库配置信息中该目标数据库名称对应的IP地址和端口创建目标数据库名称对应的连接池,其中所述连接池包含最小连接数个空闲连接,从该连接池中取出空闲连接,通过该空闲连接建立客户端与目标数据库的连接,并且将该空闲连接状态设为繁忙。
7.根据权利要求6所述的方法,其特征在于,所述从目标数据库名称对应的连接池中取出空闲连接,具体实现为:
判断目标数据库名称对应的连接池中是否有空闲连接;
如果有,从目标数据库名称对应的连接池中取出空闲连接;
如果没有,判断目标数据库名称对应的连接池中的连接数是否小于最大连接数阈值,如果是,在该连接池中增加与目标数据库的空闲连接,从该连接池中取出空闲连接。
8.根据权利要求6所述的方法,其特征在于,在建立客户端与目标数据库的连接之后,还包括:
接收客户端断开与目标数据库连接的请求;
根据所述请求,断开与客户端的连接,将与目标数据库的连接放回目标数据名称对应的连接池,并且将该连接状态设置为空闲。
9.根据权利要求6-8任意一项所述的方法,其特征在于,还包括:
计算所述连接池内的空闲连接的空闲时间;
查询出空闲时间超过预设空闲时间阈值的空闲连接;
若所查询出的空闲连接所在连接池内的连接个数大于最小连接数阈值,则将所查询出的空闲连接从连接池内删除。
10.根据权利要求1所述的方法,其特征在于,所述数据库配置信息还包括用户名和密码;
所述接收客户端对数据库的连接请求,获得目标数据库名称时,还获得客户端的用户名和密码;
在建立客户端与目标数据库的连接之前,还将客户端的用户名和密码与数据库配置信息中的用户名和密码进行匹配;
所述建立客户端与目标数据库的连接具体在匹配正确时,建立客户端与目标数据库的连接。
11.根据权利要求10所述的方法,其特征在于,所述建立客户端与目标数据库的连接之后,还包括:
根据目标数据库协议,生成包含用户名和密码的认证信息,发送给目标数据库的服务器;
接收目标数据库的服务器返回的认证通过信息,向客户端返回认证通过信息。
12.根据权利要求1所述的方法,其特征在于,所述数据库配置信息还包括数据库名称对应读操作或者写操作的信息;
还通过解析操作指令,判断该操作指令为读操作还是写操作;
如果是读操作,所述将操作指令发送到目标数据库具体发送到数据库配置信息中目标数据库名称对应读操作的IP地址和端口的目标数据库;
如果是写操作,所述将操作指令发送到目标数据库具体发送到数据库配置信息中目标数据库名称对应写操作的IP地址和端口的目标数据库。
13.一种实现分布式数据库代理的装置,其特征在于,包括:
配置信息更新单元:用于通过监听数据库配置信息的变化,更新所保存的数据库配置信息,所述数据库配置信息至少包括数据库名称,其对应的IP地址和端口;其中,所述数据库配置信息还包括:数据库名称对应的IP白名单和/或数据库名称对应的指令白名单;
接收单元:用于接收客户端对目标数据库的连接请求,获得目标数据库名称;
验证单元:用于判断目标数据库名称是否在所保存的数据库配置信息中,如果在,根据目标数据库名称对应的IP地址和端口,建立客户端与目标数据库的连接;
其中,当所述数据库配置信息包括数据库名称对应的IP白名单时,在接收客户端对目标数据库的连接请求时,还获得客户端的IP地址,所述建立客户端与目标数据库的连接具体在客户端的IP地址在目标数据库名称对应的IP白名单中时建立;
当所述数据库配置信息包括数据库名称对应的指令白名单时,在建立客户端与目标数据库的连接之后,还接收客户端对目标数据库的操作指令,将所述操作指令发送到目标数据库,所述将操作指令发送到目标数据库具体在该操作指令在目标数据库名称对应的指令白名单中时发送。
14.根据权利要求13所述的装置,其特征在于,还包括:ZooKeeper分布式协调单元:用于保存数据库配置信息,在数据库节点变化时,向配置信息更新单元发出数据库节点变化的通知;
所述配置信息更新单元:具体用于通过监听ZooKeeper分布式协调单元发出的数据库节点变化通知确定数据库配置信息的变化,在监听到所述通知时,读取ZooKeeper上保存的数据库节点的配置信息,更新数据库配置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210473158.1A CN102982141B (zh) | 2012-11-20 | 2012-11-20 | 一种实现分布式数据库代理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210473158.1A CN102982141B (zh) | 2012-11-20 | 2012-11-20 | 一种实现分布式数据库代理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102982141A CN102982141A (zh) | 2013-03-20 |
CN102982141B true CN102982141B (zh) | 2016-01-20 |
Family
ID=47856158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210473158.1A Active CN102982141B (zh) | 2012-11-20 | 2012-11-20 | 一种实现分布式数据库代理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102982141B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500111B (zh) * | 2013-10-11 | 2016-09-28 | 北京奇虎科技有限公司 | 一种基于zookeeper的信息配置方法及装置 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252452B (zh) * | 2013-06-25 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 数据管理的方法及装置 |
CN104092660B (zh) * | 2014-06-09 | 2018-09-21 | 语联网(武汉)信息技术有限公司 | 一种访问网络站点的方法 |
CN104063451B (zh) * | 2014-06-23 | 2019-03-26 | 北京京东尚科信息技术有限公司 | 一种数据库连接管理方法及系统 |
CN104202434A (zh) * | 2014-09-28 | 2014-12-10 | 北京奇虎科技有限公司 | 节点访问方法和装置 |
CN104462488B (zh) * | 2014-12-19 | 2018-05-11 | 北京奇虎科技有限公司 | 数据库的高可用解决方法和装置 |
CN104462514B (zh) * | 2014-12-19 | 2018-09-11 | 北京奇虎科技有限公司 | 数据库的高可用解决方法、连接控制装置和系统 |
CN105871584A (zh) * | 2015-12-02 | 2016-08-17 | 乐视体育文化产业发展(北京)有限公司 | 一种键值对数据库中的客户端配置更新方法、设备及系统 |
CN105809031B (zh) * | 2016-03-07 | 2018-12-28 | 深圳前海微众银行股份有限公司 | 数据库审计的方法、装置及系统 |
CN106095977A (zh) * | 2016-06-20 | 2016-11-09 | 环球大数据科技有限公司 | 一种数据库的分布式处理方法及系统 |
CN106067886B (zh) * | 2016-08-03 | 2019-06-14 | 广州品唯软件有限公司 | 安全策略更新方法及系统 |
CN106254346B (zh) * | 2016-08-03 | 2019-04-19 | 广州品唯软件有限公司 | 安全策略更新方法及系统 |
CN107980128B (zh) * | 2016-11-07 | 2019-07-26 | 深圳力维智联技术有限公司 | 数据对接动态管理方法及装置 |
CN106790601B (zh) * | 2016-12-29 | 2020-08-04 | Tcl科技集团股份有限公司 | 服务地址的读取装置、系统和方法 |
CN108270609B (zh) * | 2017-01-04 | 2021-10-15 | 武汉斗鱼网络科技有限公司 | 一种更新网站服务器的配置文件的方法及装置 |
CN108733463A (zh) * | 2017-04-18 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 一种可扩展的管理应用的方法和装置 |
CN107423448A (zh) * | 2017-08-11 | 2017-12-01 | 天津同阳科技发展有限公司 | 分布式数据处理装置及方法 |
CN107634957B (zh) * | 2017-09-29 | 2021-08-10 | 深圳迪贝守望信息技术有限公司 | 基于协议代理的数据和文件操作实时预保存方法和系统 |
CN107769970A (zh) * | 2017-10-20 | 2018-03-06 | 北京集奥聚合科技有限公司 | 一种分布式系统中配置信息的处理方法及系统 |
CN109933421A (zh) * | 2017-12-18 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 一种分布式数据处理的方法和装置 |
CN109040307A (zh) * | 2018-09-11 | 2018-12-18 | 中国银行股份有限公司 | 一种通讯连接的自清理方法及装置 |
CN110290215B (zh) * | 2019-06-28 | 2021-09-28 | 深圳前海微众银行股份有限公司 | 一种信号传输方法及装置 |
WO2020258249A1 (zh) * | 2019-06-28 | 2020-12-30 | 华为技术有限公司 | 数据库访问方法和装置、计算设备和计算机程序产品 |
CN110427271A (zh) * | 2019-07-08 | 2019-11-08 | 金蝶汽车网络科技有限公司 | 建立连接的方法、装置、存储介质和计算机设备 |
CN110365809B (zh) * | 2019-07-23 | 2021-12-14 | 中南民族大学 | 分布式服务器地址配置系统及方法 |
CN110716960B (zh) * | 2019-10-22 | 2022-07-15 | 北京锐安科技有限公司 | 一种数据库查询方法、装置、设备及存储介质 |
CN113014693B (zh) * | 2021-03-31 | 2023-05-26 | 贵州航天电子科技有限公司 | 一种多客户端温控组合服务器 |
CN113206760B (zh) * | 2021-04-30 | 2022-06-24 | 杭州迪普科技股份有限公司 | 用于vrf资源分配的接口配置更新方法、装置与电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085188A (en) * | 1998-03-30 | 2000-07-04 | International Business Machines Corporation | Method of hierarchical LDAP searching with relational tables |
US6769011B1 (en) * | 2000-11-08 | 2004-07-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for scalable event notification in lightweight directory access protocol systems |
CN1848846A (zh) * | 2005-12-09 | 2006-10-18 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 工厂设备子系统通信方法及其装置 |
CN101563686A (zh) * | 2006-12-07 | 2009-10-21 | 国际商业机器公司 | 在目录服务中的动态拓扑改变的自动发现和重新配置 |
CN102033912A (zh) * | 2010-11-25 | 2011-04-27 | 北京北纬点易信息技术有限公司 | 一种分布式数据库访问方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413105A (zh) * | 2010-09-25 | 2012-04-11 | 杭州华三通信技术有限公司 | 防范cc攻击的方法和装置 |
-
2012
- 2012-11-20 CN CN201210473158.1A patent/CN102982141B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085188A (en) * | 1998-03-30 | 2000-07-04 | International Business Machines Corporation | Method of hierarchical LDAP searching with relational tables |
US6769011B1 (en) * | 2000-11-08 | 2004-07-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for scalable event notification in lightweight directory access protocol systems |
CN1848846A (zh) * | 2005-12-09 | 2006-10-18 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 工厂设备子系统通信方法及其装置 |
CN101563686A (zh) * | 2006-12-07 | 2009-10-21 | 国际商业机器公司 | 在目录服务中的动态拓扑改变的自动发现和重新配置 |
CN102033912A (zh) * | 2010-11-25 | 2011-04-27 | 北京北纬点易信息技术有限公司 | 一种分布式数据库访问方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500111B (zh) * | 2013-10-11 | 2016-09-28 | 北京奇虎科技有限公司 | 一种基于zookeeper的信息配置方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102982141A (zh) | 2013-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102982141B (zh) | 一种实现分布式数据库代理的方法及装置 | |
CN102915374B (zh) | 一种控制数据库资源访问的方法、装置及系统 | |
CN111240763B (zh) | 配置更新方法、装置、设备及存储介质 | |
CN108734028B (zh) | 基于区块链的数据管理方法、区块链节点及存储介质 | |
CN102202087B (zh) | 一种标识存储设备的方法及系统 | |
CN104954468A (zh) | 资源的分配方法及装置 | |
CN101557427A (zh) | 提供分流信息、实现客户端分流的方法、系统及服务器 | |
CN102932391A (zh) | P2sp系统中处理数据的方法、装置和系统 | |
CN109246078B (zh) | 一种数据交互方法及服务器 | |
CN111767144B (zh) | 交易数据的交易路由确定方法、装置、设备及系统 | |
CN104969222A (zh) | 使用层次数据结构节点上递归式事件监听器的方法和系统 | |
CN104219069A (zh) | 访问频率控制方法、装置及控制系统 | |
CN105635320A (zh) | 一种用于调用配置信息的方法与设备 | |
CN111385370B (zh) | Id分配方法、装置、存储介质及id分配系统 | |
US20070265976A1 (en) | License distribution in a packet data network | |
CN103581040A (zh) | 服务器分配装置和服务器分配方法 | |
CN111506611A (zh) | 数据的查询方法、装置、设备及存储介质 | |
CN102594798A (zh) | 一种连接数据库的代理方法及系统 | |
CN104516744A (zh) | 软件更新方法及系统 | |
CN109889625B (zh) | 访问服务器的方法、记账节点、服务器及计算机可读存储介质 | |
CN108011870B (zh) | 一种软件远程在线升级信息自动识别管理方法 | |
CN103051623A (zh) | 限制开放平台的调用的方法 | |
CN113177179A (zh) | 数据请求连接管理方法、装置、设备及存储介质 | |
CN111182536A (zh) | Sim卡状态检测方法、装置、网络设备及存储介质 | |
CN102541906B (zh) | 分布式业务处理方法及分布式系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: 100086 12, 1201, 3 building, 2 South Road, Haidian District Academy of Sciences, Beijing. Patentee after: Beijing Sohu New Media Information Technology Co., Ltd. Address before: 100084 Beijing Haidian District Zhongguancun East Road 1 hospital 9 building Sohu cyber Building 8 floor 802 room. Patentee before: Beijing Sohu New Media Information Technology Co., Ltd. |
|
CP02 | Change in the address of a patent holder |