本技术涉及负载均衡,尤其涉及集群调度方法、装置及设备。
背景技术:
1、如今随着业务发展,单点式数据库已经难以满足实际需求,如今的数据库一般是采用集群式数据库(如etcd集群,etcd为一种分布式键值对存储数据库,通过主从选举、分布式锁、写屏障实现可靠的分布式协作),即通过多台设置有数据库的设备组建集群,以集群的形式提供数据库服务,而为了保证集群式数据库可正常对外提供服务,一般会在端侧(即访问数据库的一侧)与数据库集群之间会设置负载均衡器,通过负载均衡器接收请求,并将请求向数据库集群中进行分发。
2、而目前的负载均衡器一般不区分请求读写类型,以etcd集群为例,负载均衡器会直接调度请求到etcd集群中集群节点(也可以被称为实例),如果写请求被调度到从节点,则从节点需要中转写请求到主节点进行处理,写请求经过从节点中转,会造成请求响应速度降低,而从节点中转请求还会造成服务器计算资源和网络资源的浪费;
3、并且负载均衡器以此种调度方式,还会调度一部分读请求到主节点,由此,主节点会处理所有的写请求和部分读请求,造成写请求与读请求相互竞争主节点的资源,会导致主节点负载较高及请求响应速度降低,也降低了集群式数据库的整体负载能力。
技术实现思路
1、本技术的主要目的在于提供一种集群调度方法、装置及设备,旨在解决相关技术集群调度会造成请求响应速度低,且存在资源浪费的技术问题。
2、为实现上述目的,本技术提出一种集群调度方法,所述方法包括:
3、对接收到的集群调度请求进行解析,确定所述集群调度请求对应的请求类型,所述请求类型包括读请求及写请求;
4、确定目标集群的选举信息,所述选举信息包括所述目标集群的主节点以及至少一个从节点;
5、基于所述请求类型、所述选举信息在所述目标集群中选取目标节点;
6、将所述集群调度请求发送至所述目标节点,以使所述目标节点根据所述集群调度请求执行数据读取业务或数据写入业务。
7、在本技术一种可能的实现方式中,所述对接收到的集群调度请求进行解析,确定所述集群调度请求对应的请求类型,包括:
8、对接收到的集群调度请求进行解析,从所述集群调度请求中提取请求关键字;所述请求关键字为与数据读取或数据写入业务相关的字段;
9、根据所述请求关键字确定所述集群调度请求对应的请求类型。
10、在本技术一种可能的实现方式中,所述对接收到的集群调度请求进行解析,从所述集群调度请求中提取请求关键字,包括:
11、对接收到的集群调度请求中的请求数据进行序列化处理,获得请求序列化数据,所述序列化处理为将请求数据转化为便于存储或传输形式的数据;从所述请求序列化数据中提取第一层级数据,所述第一层级数据为所述请求序列化数据中最外层或根级别的键值对数据;从所述第一层级数据中提取业务相关字段,获得请求关键字;
12、或者,
13、对接收到的集群调度请求中的请求数据进行对象化处理,获得请求数据对象,所述对象化处理为将请求数据转化为对象形式的结构化数据;读取所述请求数据对象中非空字段,获得有效字段,所述非空字段为请求数据对象中对应的值不为空的属性字段;从所述有效字段中提取业务相关字段,获得请求关键字。
14、在本技术一种可能的实现方式中,所述根据所述请求关键字确定所述集群调度请求对应的请求类型,包括:
15、若所述请求关键字包括第一关键字段,且不包括第二关键字段,则判定所述集群调度请求对应的请求类型为读类型;
16、若所述请求关键字包括第一关键字段以及第二关键字段,则判定所述集群调度请求对应的请求类型为写类型;
17、其中,所述第一关键字段对应的数据与数据库中数据库字段相对应,所述第二关键字段对应的数据与数据库中数据库字段的字段值相对应。
18、在本技术一种可能的实现方式中,所述确定目标集群的选举信息,包括:
19、从目标集群的集群节点中选取待访问节点;向所述待访问节点发送选举获取请求,以使所述待访问节点反馈选举信息;
20、或者,
21、接收所述目标集群发送的选举信息,所述选举信息在所述目标集群中完成主节点选举时由目标集群中的选举上报节点发送,所述选举上报节点为目标集群中的主节点或从节点。
22、在本技术一种可能的实现方式中,所述基于所述请求类型、所述选举信息在所述目标集群中选取目标节点,包括:
23、若所述请求类型为写类型,则将所述目标集群中的主节点选取为目标节点;
24、若所述请求类型为读类型,则从所述目标集群中至少一个从节点中选取目标节点。
25、在本技术一种可能的实现方式中,所述若所述请求类型为读类型,则从所述目标集群中至少一个从节点中选取目标节点,包括:
26、若所述请求类型为读类型,则获取从节点标识队列;
27、从所述节点标识队列中提取队列头部元素,获得目标节点标识;
28、基于所述目标节点标识从所述目标集群中至少一个从节点中选取目标节点;
29、在选取完毕时,将所述目标节点标识添加至所述从节点标识队列的队列尾部。
30、在本技术一种可能的实现方式中,所述若所述请求类型为读类型,则从所述目标集群中至少一个从节点中选取目标节点,包括:
31、若所述请求类型为读类型,则获取前次选取序号以及从节点排序结果,所述从节点排序结果为根据预设排序规则对目标集群中至少一个从节点进行排序生成的排序结果;
32、对所述前次选取序号进行更新,获得当前选取序号;
33、将所述从节点排序结果中所述当前选取序号对应的从节点选取为目标节点。
34、此外,为实现上述目的,本技术还提出一种集群调度装置,所述装置包括:
35、解析模块,用于对接收到的集群调度请求进行解析,确定所述集群调度请求对应的请求类型,所述请求类型包括读请求及写请求;
36、确定模块,用于确定目标集群的选举信息,所述选举信息包括所述目标集群的主节点以及至少一个从节点;
37、选取模块,用于基于所述请求类型、所述选举信息在所述目标集群中选取目标节点;
38、发送模块,用于将所述集群调度请求发送至所述目标节点,以使所述目标节点根据所述集群调度请求执行数据读取业务或数据写入业务。
39、此外,为实现上述目的,本技术还提出一种集群调度设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上所述的集群调度方法的步骤。
40、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的集群调度方法的步骤。
41、此外,为实现上述目的,本技术还提出一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上所述的集群调度方法的步骤。
42、本技术提出的一个或多个技术方案,至少具有以下技术效果:
43、由于在进行集群调度时,会先对集群调度请求进行解析,根据解析获取到的请求关键字确定集群调度请求的请求类型,根据请求类型从目标集群中选取一个适于执行集群调度请求相关业务的节点作为目标节点,并将请求分发至目标节点,保证在调度时,可直接将请求进行合理分发,避免出现集群内转发请求的现象。
1.一种集群调度方法,其特征在于,所述集群调度方法包括:
2.如权利要求1所述的集群调度方法,其特征在于,所述对接收到的集群调度请求进行解析,确定所述集群调度请求对应的请求类型,包括:
3.如权利要求2所述的集群调度方法,其特征在于,所述对接收到的集群调度请求进行解析,从所述集群调度请求中提取请求关键字,包括:
4.如权利要求2所述的集群调度方法,其特征在于,所述根据所述请求关键字确定所述集群调度请求对应的请求类型,包括:
5.如权利要求1所述的集群调度方法,其特征在于,所述确定目标集群的选举信息,包括:
6.如权利要求1至5任一项所述的集群调度方法,其特征在于,所述基于所述请求类型、所述选举信息在所述目标集群中选取目标节点,包括:
7.如权利要求6所述的集群调度方法,其特征在于,所述若所述请求类型为读类型,则从所述目标集群中至少一个从节点中选取目标节点,包括:
8.如权利要求6所述的集群调度方法,其特征在于,所述若所述请求类型为读类型,则从所述目标集群中至少一个从节点中选取目标节点,包括:
9.一种集群调度装置,其特征在于,所述装置包括:
10.一种集群调度设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如权利要求1至8中任一项所述的集群调度方法的步骤。