权限配置方法、装置、服务器及存储介质与流程

专利2022-06-29  80


本申请属于信息技术领域,特别是涉及权限配置方法、装置、服务器及存储介质。



背景技术:

随着互联网技术的蓬勃发展,微服务架构思想逐渐兴起。系统架构开始追求小型化、轻量化,原有的大型集中式的it系统通过垂直拆分,衍生出很多细粒度的系统。因此,对系统间松耦合的要求也越来越高。远程过程调用(remoteprocedurecall,rpc)、服务治理、消息中间件等几乎成为现代互联网架构的标配。

目前,rocketmq作为一款高性能消息中间件得到了广泛的使用,其核心优势是可靠的消息存储、高性能与低延迟的消息发送、强大的消息堆积能力与消息处理能力、严格的顺序消息模式等等。同时,rocketmq版本中引入了访问控制列表(accesscontrollists,acl)权限认证管理,acl权限认证管理对rocketmq的使用安全性有着重要意义。

但是,rocketmq的broker端(服务端)通常是采用集群方式部署的,众多的broker端都分别维护着自己的acl权限认证文件,在进行权限配置时,只能通过单独对各个broker端进行操作来完成,给运营维护人员带来较大的工作量,操作繁琐重复。



技术实现要素:

有鉴于此,本申请实施例提供了一种权限配置方法、装置、服务器及存储介质,以解决现有技术中在配置rocketmq的各个broker端的权限时,只能通过单独对各个broker端进行操作来完成,操作繁琐重复的问题。

本申请实施例的第一方面提供了一种权限配置方法,适用于中心服务器,所述方法包括:

获取针对多个节点服务器的权限配置文件,所述权限配置文件携带有所述多个节点服务器的标识信息;

接收目标节点服务器的注册请求,针对所述注册请求建立与所述目标节点服务器之间的心跳连接;

基于所述心跳连接,将所述权限配置文件发送至所述目标节点服务器,所述权限配置文件用于指示所述目标节点服务器依据所述标识信息从所述权限配置文件中识别出属于自身的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

本申请实施例的第二方面提供了一种权限配置方法,适用于分布式集群中的任一节点服务器,所述方法包括:

向中心服务器发送注册请求,所述注册请求用于指示所述中心服务器建立与节点服务器之间的心跳连接;

基于所述心跳连接,接收所述中心服务器发送的权限配置文件,所述权限配置文件携带有多个节点服务器的标识信息;

根据所述标识信息,从所述权限配置文件中识别出属于当前节点服务器的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

本申请实施例的第三方面提供了一种权限配置装置,适用于中心服务器,所述装置包括:

获取模块,用于获取针对多个节点服务器的权限配置文件,所述权限配置文件携带有所述多个节点服务器的标识信息;

接收模块,用于接收目标节点服务器的注册请求;

连接模块,用于针对所述注册请求建立与所述目标节点服务器之间的心跳连接;

发送模块,用于基于所述心跳连接,将所述权限配置文件发送至所述目标节点服务器,所述权限配置文件用于指示所述目标节点服务器依据所述标识信息从所述权限配置文件中识别出属于自身的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

本申请实施例的第四方面提供了一种权限配置装置,适用于分布式集群中的任一节点服务器,所述装置包括:

注册模块,用于向中心服务器发送注册请求,所述注册请求用于指示所述中心服务器建立与节点服务器之间的心跳连接;

接收模块,用于基于所述心跳连接,接收所述中心服务器发送的权限配置文件,所述权限配置文件携带有多个节点服务器的标识信息;

配置模块,用于根据所述标识信息,从所述权限配置文件中识别出属于当前节点服务器的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

本申请实施例的第五方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述权限配置方法的步骤。

本申请实施例的第六方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第二方面所述权限配置方法的步骤。

本申请实施例的第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述权限配置方法的步骤。

本申请实施例的第八方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第二方面所述权限配置方法的步骤。

与现有技术相比,本申请实施例包括以下优点:

本申请实施例,通过获取针对多个节点服务器的权限配置文件,从而在接收到目标节点服务器的注册请求后,可以针对注册请求建立与目标节点服务器之间的心跳连接,并基于心跳连接,将权限配置文件发送至目标节点服务器,由目标节点服务器依据权限配置文件中携带的标识信息识别出属于自身的目标权限配置信息并采用目标权限配置信息进行权限配置。本实施例通过将全部节点服务器的权限配置文件统一加载至中心服务器,再由中心服务器发送至各个节点服务器,可以是使各个节点服务器通过标识信息自行查找出属于自身的权限配置信息并进行权限配置,解决了现有技术中针对各个节点服务器进行权限配置时需要单独对各个节点服务器进行操作的问题,降低了权限配置的处理复杂度,也提高了权限配置的效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个实施例的一种权限配置方法的步骤流程示意图;

图2是本申请一个实施例的另一种权限配置方法的步骤流程示意图;

图3是本申请一个实施例的又一种权限配置方法的步骤流程示意图;

图4是本申请一个实施例的再一种权限配置方法的步骤流程示意图;

图5是本申请一个实施例的中心服务器与节点服务器之间的通信架构示意图;

图6是本申请一个实施例的中心服务器、节点服务器及客户端之间的数据交互流程示意图;

图7是本申请一个实施例的一种权限配置装置的示意图;

图8是本申请一个实施例的另一种权限配置装置的示意图;

图9是本申请一个实施例的一种服务器的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

下面通过具体实施例来说明本申请的技术方案。

参照图1,示出了本申请一个实施例的一种权限配置方法的步骤流程示意图,具体可以包括如下步骤:

s101、获取针对多个节点服务器的权限配置文件,所述权限配置文件携带有所述多个节点服务器的标识信息;

需要说明的是,本方法可以适用于中心服务器,该中心服务器可以与分布式部署的多个节点服务器通信连接。即,本实施例的执行主体为中心服务器,通过在中心服务器上实施本方法可以实现对各个节点服务器的权限进行配置。

作为本实施例的一种示例,可以通过在中心服务器和各个节点服务器中部署rocketmq,构建出具有高性能消息处理的服务器系统。因此,本实施例的中心服务器可以是rocketmq的管理端nameserver(名称服务),nameserver是一个轻量级的服务注册与服务发现管理器,可以用于管理rocketmq中各个broker(服务端)及各个broker中的topic(主题消息);上述各个broker端即为节点服务器,是rocketmq的server端,负责接收并存储客户端发送过来的数据;客户端则可以从broker端获取相应topic的数据,通过acl权限的认证,可以控制该topic只能被配置有相应权限的用户使用,保证消息不会被他人消费。acl使用网络流量控制(过滤)技术,在路由器上读取网络层和传输层的报头信息,通过执行acl定义的访问规则进行数据流量的控制和过滤,达到网络访问控制的目的。

在本实施例中,针对多个节点服务器的权限配置文件可以在是在中心服务器启动时加载至服务器内存的,上述权限配置文件除携带有适用于各个节点服务器的权限配置信息外,还包括各个节点服务器的标识信息,通过标识信息,可以将各个节点服务器的权限配置信息与具体的节点服务器一一对应起来。

s102、接收目标节点服务器的注册请求,针对所述注册请求建立与所述目标节点服务器之间的心跳连接;

本实施例中的目标节点服务器可以是多个节点服务器中的任意一个。

为了实现中心服务器对各个节点服务器的管理,节点服务器在启动时,需要向中心服务器进行注册。在注册过程中,节点服务器可以将自身的ip地址、topic信息等注册到中心服务器中,后续客户端便可以根据中心服务器中的信息找到对应的节点服务器,进行相应的操作。

在本实施例中,中心服务器在接收到节点服务器的注册请求后,可以在中心服务器与该节点服务器之间建立起通信连接,上述通信连接可以是一种通过心跳机制在二者之间保持的长连接。

需要说明的是,任一节点服务器在启动时,均需要执行上述注册操作。

s103、基于所述心跳连接,将所述权限配置文件发送至所述目标节点服务器,所述权限配置文件用于指示所述目标节点服务器依据所述标识信息从所述权限配置文件中识别出属于自身的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

在节点服务器完成注册后,中心服务器便可以将预先加载的权限配置文件发送至该节点服务器,由节点服务器采用接收到的权限配置文件自行完成权限配置。

需要说明是,由于各个节点服务器在验证客户端的权限时,只需要验证属于本节点的部分,因此中心服务器在发送上述权限配置文件时无需对各个节点服务器各自的权限配置信息进行区分,而是可以将针对所有节点服务器的权限配置信息放置于同一个文件中进行管理,统一发送至各个节点服务器,由各个节点服务器根据权限配置文件中携带的标识信息,自行查找出属于自己的目标权限配置信息,并采用目标权限配置信息进行权限配置。通过将权限配置信息的查找过程下放至各个节点服务器,减少了中心服务器的操作处理过程,减轻了中心服务器的处理压力。

在本申请实施例中,通过获取针对多个节点服务器的权限配置文件,从而在接收到目标节点服务器的注册请求后,可以针对注册请求建立与目标节点服务器之间的心跳连接,并基于心跳连接,将权限配置文件发送至目标节点服务器,由目标节点服务器依据权限配置文件中携带的标识信息识别出属于自身的目标权限配置信息并采用目标权限配置信息进行权限配置。本实施例通过将全部节点服务器的权限配置文件统一加载至中心服务器,再由中心服务器发送至各个节点服务器,可以是使各个节点服务器通过标识信息自行查找出属于自身的权限配置信息并进行权限配置,解决了现有技术中针对各个节点服务器进行权限配置时需要单独对各个节点服务器进行操作的问题,降低了权限配置的处理复杂度,也提高了权限配置的效率。

参照图2,示出了本申请一个实施例的另一种权限配置方法的步骤流程示意图,所述方法适用于中心服务器,具体可以包括如下步骤:

s201、当接收到针对所述中心服务器自身的启动指令时,加载预置的配置文件;

需要说明的是,本实施例中的中心服务器可以是分布式集群中用于对各个节点服务器进行管理的一个服务器。本实施例的执行主体即为该中心服务器,通过在中心服务器上实施本方法可以实现对各个节点服务器的权限进行配置。

作为本实施例的一种示例,可以通过在中心服务器和各个节点服务器中部署rocketmq,构建出具有高性能消息处理的服务器系统。当然,本方法并不限定于rocketmq系统,通过在中心服务器和各个节点服务器中部署其他服务,也可以构建出相应的其他系统。

在本实施例中,可以通过向中心服务器发送启动指令,指示中心服务器启动。中心服务器在启动时,可以首先加载预置的配置文件,该配置文件可以包括有针对中心服务器各种功能的配置信息、针对各个节点服务器的权限配置文件,以及其他文件或数据,本实施例对此不作限定。

s202、从所述配置文件中读取针对多个节点服务器的权限配置文件,所述权限配置文件携带有所述多个节点服务器的标识信息;

在加载出预置的配置文件后,中心服务器可以针对配置文件中的各种文件、信息或数据进行相应的处理,以搭建出中心服务器的工作环境。

例如,针对各个节点的权限配置文件,中心服务器在加载配置文件后,可以从配置文件中读取出各个节点服务器的权限配置文件,并将其存入内存中。

需要说明的是,权限配置文件中可以包括有各个节点服务器的标识信息,任一标识信息对应于该节点服务器的权限配置信息。因此,针对各个节点的权限配置文件可以统一放置于一个文件夹中进行管理,各个节点服务器可以通过标识信息从该文件夹中查找出属于自身的权限配置信息。

s203、计算并存储所述权限配置文件的特征值;

在具体实现中,中心服务器在读取出各个节点服务器的权限配置文件后,还可以对该权限配置文件进行特征值计算。例如,计算出整个权限配置文件的md5值是多少,并将该md5值一并存入内存中。后续可以通过识别md5值是否发生变化来判断权限配置文件是否发生了变更。

当然,根据实际需要,除md5值外,还可以采用其他计算方式计算权限配置文件的特征值,本实施例对此不作限定。

需要说明的是,如果中心服务器获取到变更后的权限配置文件,则可以根据变更后的权限配置文件对已存储的特征值进行更新。例如。根据业务需求,需要对某个节点服务器的权限进行变更时,可以对该节点服务器的权限配置信息进行针对性的修改或变更,然后将变更后的权限配置文件重新加载至中心服务器。此时,中心服务器可以计算出变更后的权限配置文件的特征值,用新的特征值替换掉原有的特征值。

s204、接收目标节点服务器的注册请求,针对所述注册请求建立与所述目标节点服务器之间的心跳连接;

s205、基于所述心跳连接,将所述权限配置文件发送至所述目标节点服务器,所述权限配置文件用于指示所述目标节点服务器依据所述标识信息从所述权限配置文件中识别出属于自身的目标权限配置信息并采用所述目标权限配置信息进行权限配置;

在本实施例中,节点服务器在完成上述权限配置后,也可以对权限配置文件进行特征值计算,并将计算出的特征值存入内存中。

由于本实施例步骤s204-s205与前述实施例中步骤s102-s103基本相同,可以相互参阅,本实施例对此不再赘述。

s206、当检测到所述权限配置文件发生变更时,通过所述心跳连接将变更后的权限配置文件发送至所述多个节点服务器,所述变更后的权限配置文件用于指示所述多个节点服务器采用所述变更后的权限配置文件重新进行权限配置。

本实施例中的中心服务器可以通过心跳机制保持与各个节点服务器之间的长连接。因此,节点服务器需要按照设定的频次,向中心服务器返回心跳信息。该心跳信息中可以携带有已发送至各个节点服务器的权限配置文件的特征值。例如,md5值。

由于中心服务器在将权限配置文件发送至各个节点服务器时,已经计算并记录了该权限配置文件的特征值,而各个节点服务器在接收到中心服务器发送的权限配置文件后,也会对该权限配置文件的特征值进行计算,因此,只要在节点服务器中记录的特征值与在中心服务器中记录的特征值相同,则说明上述权限配置文件并未发生变更,无需对各个节点服务器的权限进行重新配置。

如果根据业务需求,需要对某个节点服务器的权限进行变更时,可以在原有的权限配置文件中针对该节点服务器的权限配置信息进行针对性的修改或变更,然后将变更后的权限配置文件重新加载至中心服务器,中心服务器可以再次计算并存储变更后的权限配置文件的特征值。此时,在中心服务器中记录的特征值便与在节点服务器中记录的特征值不同了。

因此,中心服务器可以在接收到任一节点服务器返回的心跳信息后,通过检测该心跳信息中携带的特征值与中心服务器当前存储的特征值是否相同来判定权限配置文件是否发生变更。

如果经过上述检测,接收到的特征值与当前存储的特征值不同,则可以判定权限配置文件已经发生了变更。此时,中心服务器可以通过心跳连接将变更后的权限配置文件发送至多个节点服务器。由各个节点服务器再次根据标识信息从变更后的权限配置文件中查找出属于自身的目标权限配置信息,并重新进行权限配置。

需要说明的是,中心服务器当前存储的特征值应当是指在中心服务器将任一节点服务器返回的心跳信息中携带的特征值进行比较时,在比较的那个时刻存储于中心服务器中的特征值。如果中心服务器中的权限配置信息没有发生变更,当前存储的特征值就应当是原来的未发生变更的权限配置信息对应的特征值;如果中心服务器中的权限配置信息发生了变更,当前存储的特征值就应当是已经发生变更后的权限配置信息对应的特征值。

在本申请实施例中,通过在中心服务器和节点服务器中计算并存储权限配置文件的特征值,可以通过检测二者记录的特征值是否相同来判定权限配置文件是否发生变更。如果已变更,则可以再次通过心跳连接将变更后的权限配置文件发送至各个节点服务器,保证了变更后的权限配置文件能够及时在节点服务器端生效。

参照图3,示出了本申请一个实施例的又一种权限配置方法的步骤流程示意图,具体可以包括如下步骤:

s301、向中心服务器发送注册请求,所述注册请求用于指示所述中心服务器建立与节点服务器之间的心跳连接;

需要说明的是,本方法可以适用于分布式集群中的任一节点服务器,多个节点服务器与中心服务器通信连接,共同构成服务器系统。即,本实施例是从节点服务器端对本方法进行的介绍,本实施例的执行主体为节点服务器。

作为本实施例的一种示例,可以通过在中心服务器和各个节点服务器中部署rocketmq,构建出具有高性能消息处理的服务器系统。当然,本方法并不限定于rocketmq系统,通过在中心服务器和各个节点服务器中部署其他服务,也可以构建出相应的其他系统。

为了实现中心服务器对各个节点服务器的管理,节点服务器在启动时,需要向中心服务器进行注册。在注册过程中,节点服务器可以将自身的ip地址、topic信息等注册到中心服务器中,后续客户端便可以根据中心服务器中的信息找到对应的节点服务器,进行相应的操作。

中心服务器在接收到节点服务器的注册请求后,可以针对该注册请求通过心跳机制在中心服务器与节点服务器之间保持长连接。

s302、基于所述心跳连接,接收所述中心服务器发送的权限配置文件,所述权限配置文件携带有多个节点服务器的标识信息;

在节点服务器完成注册后,中心服务器便可以将预先加载的权限配置文件发送至该节点服务器。每个节点服务器接收到的权限配置文件均包括属于同一个中心服务器管理的多个节点服务器的权限配置信息,各个节点服务器的权限配置信息可以通过权限配置文件中携带的标识信息进行区分。

s303、根据所述标识信息,从所述权限配置文件中识别出属于当前节点服务器的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

在本实施例中,各个节点服务器可以根据权限配置文件中携带的标识信息,自行查找出属于自己的目标权限配置信息,并采用目标权限配置信息进行权限配置。通过将权限配置信息的查找过程下放至各个节点服务器,减少了中心服务器的操作处理过程,减轻了中心服务器的处理压力。

由于本实施例是从节点服务器端对权限配置方法进行的介绍,与前述实施例从中心服务器端进行的介绍是相对应的,本实施例对此过程描述得相对简单,具体细节可以参见前述实施例的介绍。

在本申请实施例中,通过向中心服务器发送注册请求,可以建立中心服务器与节点服务器之间的心跳连接,从而能够基于该心跳连接,在接收到中心服务器发送的权限配置文件后,根据权限配置文件中携带的标识信息,识别出属于当前节点服务器的目标权限配置信息并采用目标权限配置信息进行权限配置。本实施例通过中心服务器统一发送全部节点服务器的权限配置文件,再由各个节点服务器通过标识信息自行查找出属于自身的权限配置信息并进行权限配置,解决了现有技术中针对各个节点服务器进行权限配置时需要单独对各个节点服务器进行操作的问题,降低了权限配置的处理复杂度,也提高了权限配置的效率。

参照图4,示出了本申请一个实施例的再一种权限配置方法的步骤流程示意图,所述方法适用于分布式集群中的任一节点服务器,所述方法具体可以包括如下步骤:

s401、向中心服务器发送注册请求,所述注册请求用于指示所述中心服务器建立与节点服务器之间的心跳连接;

s402、基于所述心跳连接,接收所述中心服务器发送的权限配置文件,所述权限配置文件携带有多个节点服务器的标识信息;

s403、根据所述标识信息,从所述权限配置文件中识别出属于当前节点服务器的目标权限配置信息并采用所述目标权限配置信息进行权限配置;

由于本实施例的步骤s401-s403与前述实施例中步骤s301-s303基本相同,可以相互参阅,本实施例对此不再赘述。

s404、接收客户端发送的数据处理请求;基于所述目标权限配置信息,验证所述客户端是否具有相应的用户权限;

在完成权限配置后,各个节点服务器便可以对由具有相应权限的客户端发送的数据处理请求进行处理。

需要说明的是,在初始时,客户端也需要向中心服务器进行注册,由中心服务器为其分配对应的节点服务器。客户端通过接收中心服务器返回的节点服务器的信息,可以确定应当将消息或数据发送至哪一个节点服务器进行处理。

节点服务器在接收到客户端的请求时,可以首先对客户端是否具有相应的权限进行验证。如果该客户端没有权限,节点服务器将会拒绝客户端的数据处理请求;如果经验证该客户端具有相应的权限,节点服务器可以执行步骤s405,对上述数据处理请求进行处理。

s405、对所述数据处理请求进行处理。

s406、按照预设频次,向所述中心服务器发送心跳信息,所述心跳信息中携带有所述权限配置文件的特征值,所述特征值用于指示所述中心服务器在所述特征值与所述中心服务器当前存储的特征值不同时,将变更后的权限配置文件发送至多个节点服务器;

本实施例中的中心服务器可以通过心跳机制保持与各个节点服务器之间的长连接。因此,节点服务器需要按照设定的频次,向中心服务器返回心跳信息。该心跳信息中可以携带有已发送至各个节点服务器的权限配置文件的特征值。例如,md5值。

由于中心服务器在将权限配置文件发送至各个节点服务器时,已经计算并记录了该权限配置文件的特征值,而各个节点服务器在接收到中心服务器发送的权限配置文件后,也会对该权限配置文件的特征值进行计算,因此,只要在节点服务器中记录的特征值与在中心服务器中记录的特征值相同,则说明上述权限配置文件并未发生变更,无需对各个节点服务器的权限进行重新配置。

如果根据业务需求,需要对某个节点服务器的权限进行变更时,可以在原有的权限配置文件中针对该节点服务器的权限配置信息进行针对性的修改或变更,然后将变更后的权限配置文件重新加载至中心服务器,中心服务器可以再次计算并存储变更后的权限配置文件的特征值。此时,在中心服务器中记录的特征值便与在节点服务器中记录的特征值不同了。

因此,中心服务器可以在接收到任一节点服务器返回的心跳信息后,通过检测该心跳信息中携带的特征值与中心服务器当前存储的特征值是否相同来判定权限配置文件是否发生变更。

如果经过上述检测,接收到的特征值与当前存储的特征值不同,则可以判定权限配置文件已经发生了变更。此时,中心服务器可以通过心跳连接将变更后的权限配置文件发送至多个节点服务器。

s407、接收所述中心服务器发送的所述变更后的权限配置文件,采用所述变更后的权限配置文件重新进行权限配置。

各个节点服务器在接收到中心服务器发送的变更后的权限配置文件后,可以再次根据标识信息从变更后的权限配置文件中查找出属于自身的目标权限配置信息,并重新进行权限配置。

在本申请实施例中,通过心跳信息判定权限配置文件发生是否发生变更,可以及时快速地发现已变更的权限配置文件;在权限配置文件发生变更后,中心服务器也可以及时地将变更后的权限配置文件发送至各个节点服务器,由各个节点服务器再次自行查找出属于自身的目标权限配置信息,并重新进行权限配置,保证了变更后的权限配置文件能够及时在节点服务器端生效。

为了便于理解,下面结合图例,通过一个完整的示例对本申请的权限配置方法作一介绍。

如图5所示,是本申请一个实施例的中心服务器与节点服务器之间的通信架构示意图。在图5中,nameserver即是配置有rocketmq服务的分布式集群中的中心服务器,nameserver可以对各个broker端进行统一的管理,上述broker端也就是分布式集群中的节点服务器。同时,为了保证系统的高可用性,broker端与nameserver均可以以主备备份的形式存在。即,各个broker端均具有主broker(broker-master)和相应的备用broker(broker-slave);nameserver也可以包括主服务器(nameserver-master)和备用服务器(nameserver-slave)。

如图6所示,是本申请一个实施例的中心服务器、节点服务器及客户端之间的数据交互流程示意图。按照图6所示的流程,在nameserver与broker端之间,broker端首先在nameserver中进行注册并获取acl权限配置文件,二者通过心跳机制保持长连接,当nameserver在心跳信息中发现acl权限配置文件发生变化后,则需要将最新的acl权限配置文件发送至各个broker端。在nameserver与客户端之间,客户端同样需要向nameserver进行注册,并获取nameserver中记录的broker端信息,找到后续发送和消费消息的broker端。然后,在客户端和broker端之间,客户端在向对应的broker端发送消息或消费消息时,broker端可以根据事先从nameserver获取的acl权限配置文件,对客户端的用户权限进行校验。如果该用户没有相应的权限,则不能通过该broker端发送或消费消息。

即,初始时,当nameserver启动,可以首先从配置文件中加载acl权限配置文件。配置文件中的acl权限配置文件记录有各个broker端对应的权限信息。然后,nameserver在加载acl权限配置文件后,可以根据设定好的字段将其转换为object对象,并将object对象存储于内存中。与此同时,nameserver还可以计算出acl权限配置文件的md5值,并将该md5值也存储于内存中。当nameserver加载变更后的acl权限配置文件后,nameserver需要重新计算变更后的acl权限配置文件的md5值,并更新内存中已存储的md5值。

broker端在启动时,需要向nameserver进行注册。在注册过程中,broker端可以将自身的ip地址、topic信息等注册到nameserver中,后续客户端便可以根据nameserver中的信息找到对应的broker,进行相应的操作。broker端与nameserver之间可以通过心跳机制保持长连接。

基于心跳连接,nameserver可以将acl权限配置文件发送至当前请求注册的broker端。由于broker端在验证客户端的权限时,只需要验证属于本broker端的部分,因此,nameserver发送的acl权限配置文件无需对各个broker端各自的权限配置信息进行区分。也就是说,可以将多个broker的acl权限配置信息放在同一个文件中进行管理。

broker端可以根据acl权限配置文件中携带的标识信息自行查找出属于自身的权限配置信息并进行相应的权限配置。同时,broker端还可以计算接收到的acl权限配置文件的md5值,并将其记录在内存中。

与broker端类似,客户端在启动时也需要向nameserver进行注册,并由nameserver为其分配对应的broker端,后续客户端便可以通过该broker端发送货消费消息。当然,broker端在处理由客户端发送的消息前,需要对该客户端进行权限校验,只有通过具有相应权限的客户端发送的消息才会被broker端处理。如果某个客户端不具有该broker端的权限,broker端则会拒绝客户端的数据处理请求。

由于nameserver可以通过心跳机制保持与各个broker端之间的长连接。因此,broker端需要按照设定的频次,向nameserver返回心跳信息。该心跳信息中同时携带有已发送至各个broker端的acl权限配置文件的md5值。nameserver在接收到上述心跳信息后,可以提取出其中的md5值,并将该md5值与当前存储于nameserver内存中的md5值进行比较。如果二者相同,则表明acl权限配置文件没有发生变更,无需进行其他处理,可以保持当前的处理方式不变。如果二者不同,则说明nameserver中的acl权限配置文件已经发生了变更,需要重新对各个broker端进行权限配置。此时,nameserver可以读取内存中变更后的acl权限配置文件并将其发送至全部broker端,由各个broker端再次从变更后的acl权限配置文件查找出属于自身的权限配置信息,并重新进行权限配置。

需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

参照图7,示出了本申请一个实施例的一种权限配置装置的示意图,所述装置适用于中心服务器,所述装置具体可以包括如下模块:

获取模块701,用于获取针对多个节点服务器的权限配置文件,所述权限配置文件携带有所述多个节点服务器的标识信息;

接收模块702,用于接收目标节点服务器的注册请求;

连接模块703,用于针对所述注册请求建立与所述目标节点服务器之间的心跳连接;

发送模块704,用于基于所述心跳连接,将所述权限配置文件发送至所述目标节点服务器,所述权限配置文件用于指示所述目标节点服务器依据所述标识信息从所述权限配置文件中识别出属于自身的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

在本申请实施例中,所述获取模块701具体可以包括如下子模块:

配置文件加载子模块,用于在接收到针对所述中心服务器自身的启动指令时,加载预置的配置文件;

权限配置文件读取子模块,用于从所述配置文件中读取针对多个节点服务器的权限配置文件。

在本申请实施例中,所述装置还可以包括如下模块:

特征值计算及存储模块,用于计算并存储所述权限配置文件的特征值;

特征值更新模块,用于若获取到变更后的权限配置文件,则根据所述变更后的权限配置文件对所述特征值进行更新。

在本申请实施例中,所述装置还可以包括如下模块:

权限配置文件变更模块,用于在检测到所述权限配置文件发生变更时,通过所述心跳连接将变更后的权限配置文件发送至所述多个节点服务器,所述变更后的权限配置文件用于指示所述多个节点服务器采用所述变更后的权限配置文件重新进行权限配置。

在本申请实施例中,所述权限配置文件变更模块具体可以包括如下子模块:

心跳信息接收子模块,用于接收任一节点服务器返回的心跳信息,所述心跳信息中携带有已发送至所述节点服务器的权限配置文件的特征值;

特征值检测子模块,用于检测所述心跳信息中携带的特征值与所述中心服务器当前存储的特征值是否相同;

权限配置文件变更子模块,用于若否,则判定所述权限配置文件发生变更,通过所述心跳连接将变更后的权限配置文件发送至所述多个节点服务器。

参照图8,示出了本申请一个实施例的另一种权限配置装置的示意图,所述装置适用于分布式集群中的任一节点服务器,所述装置具体可以包括如下模块:

注册模块801,用于向中心服务器发送注册请求,所述注册请求用于指示所述中心服务器建立与节点服务器之间的心跳连接;

接收模块802,用于基于所述心跳连接,接收所述中心服务器发送的权限配置文件,所述权限配置文件携带有多个节点服务器的标识信息;

配置模块803,用于根据所述标识信息,从所述权限配置文件中识别出属于当前节点服务器的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

在本申请实施例中,所述装置还可以包括如下模块:

心跳信息发送模块,用于按照预设频次,向所述中心服务器发送心跳信息,所述心跳信息中携带有所述权限配置文件的特征值,所述特征值用于指示所述中心服务器在所述特征值与所述中心服务器当前存储的特征值不同时,将变更后的权限配置文件发送至多个节点服务器;

权限配置文件变更子模块,用于接收所述中心服务器发送的所述变更后的权限配置文件,采用所述变更后的权限配置文件重新进行权限配置。

在本申请实施例中,所述装置还可以包括如下模块:

数据处理请求接收模块,用于接收客户端发送的数据处理请求;

用户权限验证模块,用于基于所述目标权限配置信息,验证所述客户端是否具有相应的用户权限;

数据处理模块,用于若所述客户端具有所述用户权限,则对所述数据处理请求进行处理。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。

参照图9,示出了本申请一个实施例的一种服务器的示意图。如图9所示,本实施例的服务器900包括:处理器910、存储器920以及存储在所述存储器920中并可在所述处理器910上运行的计算机程序921。所述处理器910执行所述计算机程序921时实现上述权限配置方法各个实施例中的步骤,例如图1所示的步骤s101至s103、图3所示的步骤s301至s303等。或者,所述处理器910执行所述计算机程序921时实现上述各装置实施例中各模块/单元的功能,例如图7所示模块701至704的功能,或者图8所示模块801至803的功能。

示例性的,所述计算机程序921可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器920中,并由所述处理器910执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序921在所述服务器900中的执行过程。例如,当所述服务器为分布式集群中的中心服务器时,所述计算机程序921可以被分割成获取模块、接收模块、连接模块、发送模块,各模块具体功能如下:

获取模块,用于获取针对多个节点服务器的权限配置文件,所述权限配置文件携带有所述多个节点服务器的标识信息;

接收模块,用于接收目标节点服务器的注册请求;

连接模块,用于针对所述注册请求建立与所述目标节点服务器之间的心跳连接;

发送模块,用于基于所述心跳连接,将所述权限配置文件发送至所述目标节点服务器,所述权限配置文件用于指示所述目标节点服务器依据所述标识信息从所述权限配置文件中识别出属于自身的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

或者,当所述服务器为分布式集群中的节点服务器时,所述计算机程序921又可以被分割成注册模块、接收模块、配置模块,各模块具体功能如下:

注册模块,用于向中心服务器发送注册请求,所述注册请求用于指示所述中心服务器建立与节点服务器之间的心跳连接;

接收模块,用于基于所述心跳连接,接收所述中心服务器发送的权限配置文件,所述权限配置文件携带有多个节点服务器的标识信息;

配置模块,用于根据所述标识信息,从所述权限配置文件中识别出属于当前节点服务器的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

所述服务器900可以是桌上型计算机、笔记本及云端服务器等计算设备。所述服务器900可包括,但不仅限于,处理器910、存储器920。本领域技术人员可以理解,图9仅仅是服务器900的一种示例,并不构成对服务器900的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器900还可以包括输入输出设备、网络接入设备、总线等。

所述处理器910可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器920可以是所述服务器900的内部存储单元,例如服务器900的硬盘或内存。所述存储器920也可以是所述服务器900的外部存储设备,例如所述服务器900上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等等。进一步地,所述存储器920还可以既包括所述服务器900的内部存储单元也包括外部存储设备。所述存储器920用于存储所述计算机程序921以及所述服务器900所需的其他程序和数据。所述存储器920还可以用于暂时地存储已经输出或者将要输出的数据。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。


技术特征:

1.一种权限配置方法,其特征在于,适用于中心服务器,所述方法包括:

获取针对多个节点服务器的权限配置文件,所述权限配置文件携带有所述多个节点服务器的标识信息;

接收目标节点服务器的注册请求,针对所述注册请求建立与所述目标节点服务器之间的心跳连接;

基于所述心跳连接,将所述权限配置文件发送至所述目标节点服务器,所述权限配置文件用于指示所述目标节点服务器依据所述标识信息从所述权限配置文件中识别出属于自身的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

2.根据权利要求1所述的方法,其特征在于,所述获取针对多个节点服务器的权限配置文件的步骤包括:

当接收到针对所述中心服务器自身的启动指令时,加载预置的配置文件;

从所述配置文件中读取针对多个节点服务器的权限配置文件。

3.根据权利要求1所述的方法,其特征在于,在所述获取针对多个节点服务器的权限配置文件的步骤后,还包括:

计算并存储所述权限配置文件的特征值;

若获取到变更后的权限配置文件,则根据所述变更后的权限配置文件对所述特征值进行更新。

4.根据权利要求3所述的方法,其特征在于,还包括:

当检测到所述权限配置文件发生变更时,通过所述心跳连接将变更后的权限配置文件发送至所述多个节点服务器,所述变更后的权限配置文件用于指示所述多个节点服务器采用所述变更后的权限配置文件重新进行权限配置。

5.根据权利要求4所述的方法,其特征在于,所述当检测到所述权限配置文件发生变更时,通过所述心跳连接将变更后的权限配置文件发送至所述多个节点服务器的步骤包括:

接收任一节点服务器返回的心跳信息,所述心跳信息中携带有已发送至所述节点服务器的权限配置文件的特征值;

检测所述心跳信息中携带的特征值与所述中心服务器当前存储的特征值是否相同;

若否,则判定所述权限配置文件发生变更,通过所述心跳连接将变更后的权限配置文件发送至所述多个节点服务器。

6.一种权限配置方法,其特征在于,适用于分布式集群中的任一节点服务器,所述方法包括:

向中心服务器发送注册请求,所述注册请求用于指示所述中心服务器建立与节点服务器之间的心跳连接;

基于所述心跳连接,接收所述中心服务器发送的权限配置文件,所述权限配置文件携带有多个节点服务器的标识信息;

根据所述标识信息,从所述权限配置文件中识别出属于当前节点服务器的目标权限配置信息并采用所述目标权限配置信息进行权限配置。

7.根据权利要求6所述的方法,其特征在于,还包括:

按照预设频次,向所述中心服务器发送心跳信息,所述心跳信息中携带有所述权限配置文件的特征值,所述特征值用于指示所述中心服务器在所述特征值与所述中心服务器当前存储的特征值不同时,将变更后的权限配置文件发送至多个节点服务器;

接收所述中心服务器发送的所述变更后的权限配置文件,采用所述变更后的权限配置文件重新进行权限配置。

8.根据权利要求6所述的方法,其特征在于,还包括:

接收客户端发送的数据处理请求;

基于所述目标权限配置信息,验证所述客户端是否具有相应的用户权限;

若所述客户端具有所述用户权限,则对所述数据处理请求进行处理。

9.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述权限配置方法的步骤。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述权限配置方法的步骤。

技术总结
本申请实施例适用于信息技术领域,提供了一种权限配置方法、装置、服务器及存储介质,所述方法适用于中心服务器,包括:获取针对多个节点服务器的权限配置文件;接收目标节点服务器的注册请求,针对所述注册请求建立与所述目标节点服务器之间的心跳连接;基于所述心跳连接,将所述权限配置文件发送至所述目标节点服务器,所述权限配置文件用于指示所述目标节点服务器依据所述标识信息从所述权限配置文件中识别出属于自身的目标权限配置信息并采用所述目标权限配置信息进行权限配置,解决了现有技术中针对各个节点服务器进行权限配置时需要单独对各个节点服务器进行操作的问题,降低了权限配置的处理复杂度,也提高了权限配置的效率。

技术研发人员:孙园园
受保护的技术使用者:中国平安人寿保险股份有限公司
技术研发日:2020.01.17
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-22246.html

最新回复(0)