发明内容
本发明的目的是提供一种基于JMX的获取数据方法、装置及介质,降低对命名空间访问时获取数据的耦合性,同时提高访问数据的速度。
为解决上述技术问题,本发明提供一种基于JMX的获取数据方法,包括:
获取由客户端发送的当前请求域名;
根据当前请求域名查询代理层以得到公用命名空间;
判断当前请求域名是否为已注册的域名;
若是,则接收设备层建立的命名空间集合,并根据当前请求域名轮询命名空间集合以获取对应的目标命名空间,其中命名空间集合包括多个命名空间;
当在命名空间集合内未查询到目标命名空间,则将公用命名空间作为目标命名空间;
若否,则将公用命名空间作为目标命名空间以实现当前请求域名的访问数据。
优选地,根据当前请求域名查询代理层以得到公用命名空间,包括:
根据当前请求域名进行解析得到MBean名称;
根据MBean名称查询代理层以得到公用命名空间。
优选地,命名空间集合的建立通过以下步骤:
获取第一映射关系和第二映射关系,其中第一映射关系为负载均衡机制下第一IP和第一域名的关系,第二映射关系为第二IP和路径的关系;
通过第一映射关系轮询HDFS系统中已注册的域名和IP信息;
获取当前IP信息以判断当前IP信息是否存在于第二映射关系的第二IP内;
若存在,则在第二IP内获取与当前IP信息对应的目标IP,根据第二映射关系获取目标IP对应的目标路径;
根据目标路径获取路径属性值;
根据当前IP信息以及第一映射关系获取对应的域名信息;
将路径属性值与当前IP信息对应的域名信息组合为Map值以完成命名空间集合的建立;
若不存在,则获取公用路径,并根据公用路径获取公用路径属性值,其中公用路径为公用命名空间的路径;
将公用路径属性值与当前IP信息对应的域名信息组合为Map值以完成命名空间集合的建立。
优选地,根据当前请求域名轮询命名空间集合以获取对应的目标命名空间,包括:
根据当前请求域名在代理层的MbeanServer中调用命名空间集合的特有属性集合;
轮询特有属性集合查询是否存在替换属性信息;
若存在,则获取替换属性列表,将替换属性列表依据替换属性信息进行替换并得到对应的目标命名空间。
优选地,实现当前请求域名的访问数据,包括:
将访问数据发送至客户端以便客户端通过JMX的http调用获取。
优选地,在完成命名空间集合的建立后,还包括:
将Map值通过JSON格式生成字符串注入至代理层。
优选地,路径属性值和公用路径属性值至少包括目录大小、文件个数和对应的端口。
为解决上述技术问题,本发明还提供一种基于JMX的获取数据装置,包括:
获取模块,用于获取由客户端发送的当前请求域名;
查询模块,用于根据当前请求域名查询代理层以得到公用命名空间;
判断模块,用于判断当前请求域名是否为已注册的域名,若是,则触发轮询模块,若否,则触发第一命名模块;
轮询模块,用于接收设备层建立的命名空间集合,并根据当前请求域名轮询命名空间集合以获取对应的目标命名空间,其中命名空间集合包括多个命名空间;
第二命名模块,用于当在命名空间集合内未查询到目标命名空间,则将公用命名空间作为目标命名空间;
第一命名模块,用于将公用命名空间作为目标命名空间以实现当前请求域名的访问数据。
为解决上述技术问题,本发明还提供一种基于JMX的获取数据装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述基于JMX的获取数据方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述基于JMX的获取数据方法的步骤。
本发明提供的一种基于JMX的获取数据方法,包括获取由客户端发送的当前请求域名;根据当前请求域名查询代理层以得到公用命名空间;判断当前请求域名是否为已注册的域名;若是,则接收设备层建立的命名空间集合,并根据当前请求域名轮询命名空间集合以获取对应的目标命名空间,其中命名空间集合包括多个命名空间;当在命名空间集合内未查询到目标命名空间,则将公用命名空间作为目标命名空间;若否,则将公用命名空间作为目标命名空间以实现当前请求域名的访问数据。该方法通过获取当前请求域名查询得到公用命名空间,若该域名为已注册的域名,则通过轮询命名空间集合,也就是在多个命名空间内获取目标命名空间,若未查询到或者若该域名不为已注册的域名,则将公用命名空间作为目标命名空间。将现有的一个命名空间划分为多个命名空间,由现有的一个域名访问一个命名空间模式变为当前请求域名访问多个命名空间模式实现“多对多”的获取方式,降低对命名空间访问时获取数据的耦合性,同时提高访问数据的速度,多对多的模式更具有灵活性,进一步提高用户的体验感。
另外,本发明还提供了一种基于JMX的获取数据装置及介质,具有如上述基于JMX的获取数据方法相同的有益效果。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种基于JMX的获取数据方法、装置及介质,降低对命名空间访问时获取数据的耦合性,同时提高访问数据的速度。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
需要说明的是,本发明提供的基于JMX的获取数据方法,设备层实现管理构件(Managed Bean,MBean)构造修改,客户端通过域名访问,服务层属性替换形成新的逻辑视图并返回至客户端以实现域名请求的数据访问。JMX分为三层:设备层、代理层和服务层,分别负责处理不同的事务。
设备层主要包括一些列的接口定义和描述如何开发MBean规范,其中在JMX中MBean代表一个被管理的资源实例,通常JMX所管理的资源有一个或多个MBean组成,该资源可以是任何由Java语言开发的组件,或是JavaWrapper包装的其他语言开发的资源。代理层用来管理响应的资源,并且为远端用户提供访问的接口。代理层构建在设备层之上,并且使用并管理设备层内部描述的组件。代理层主要定义各种服务以及通信模型,该层的核心是一个MBeanServer,用于管理MBean,并且代理外界对MBean的访问,例如MBean实例容器。注册在MBeanServer上的MBean并不直接和远程应用程序进行通信,通过协议适配器(Adapter)和连接器(Connector)进行通信,通常代理层由一个MBeanServer和多个系统服务组成。服务层关心代理层如何被远端用户(客户端)访问的细节,定义一系列用来访问代理层的接口和组件,包括协议适配器和连接器的描述。本发明基于JMX的体系结构进行,对于各层之间的通信过程不做具体限定。
图1为本发明实施例提供的一种基于JMX的获取数据方法的流程图,如图1所示,包括:
S11:获取由客户端发送的当前请求域名;
S12:根据当前请求域名查询代理层以得到公用命名空间;
S13:判断当前请求域名是否为已注册的域名,若是,则进入步骤S14,若否,则进入步骤S15;
S14:接收设备层建立的命名空间集合,并根据当前请求域名轮询命名空间集合以获取对应的目标命名空间,其中命名空间集合包括多个命名空间;
S16:当在命名空间集合内未查询到目标命名空间,则将公用命名空间作为目标命名空间;
S15:将公用命名空间作为目标命名空间以实现当前请求域名的访问数据。
具体地,接收由客户端发送的请求域名以访问HDFS系统,其中一个域名可以对应多个网络之间互连的协议(Internet Protocol,IP),在用户访问过程中,指向某一个具体IP,并不会同时访问多个IP,但不同用户在不同地点访问同一个域名,可能会访问到不同的IP地址,但表象仍为同一个域名。现有的访问过程客户端仅存在一个域名,作为优选的实施例,一个域名至少包括3个IP,通过一个域名访问一整个命名空间。本发明可以实现针对多个域名,访问多个命名空间。需要说明的是,对于多个域名中不能同时进行访问,而是根据当前的请求域名访问多个命名空间。
针对不同的命名空间,客户端用户通过域名访问所属的命名空间系统运行状态或者参数进行查看或者修改。图2为本发明实施例提供的客户端用户访问请求JMX的示意图,如图2所示,客户端通过域名获取大数据管理信息,例如通过“http://<域名>:9870”调用查看HDFS的文件系统管理界面,也可以用过JMX的http调用查看特有属性及其对应值,也就是多个命名空间。同时,域名通过域名系统(Domain Name System,DNS)服务器的负载均衡机制指向IP。
另外,其实现当前请求域名的访问数据,具体地,将访问数据发送至客户端以便客户端通过JMX的http调用获取,使其请求访问的调用过程都是基于JMX的http调用,通过域名访问机制,支持负载均衡策略,使其调用方式统一格式化。
需要说明的是,DNS作为域名和IP地址相互映射的一个分布式数据库,方便访问互联网,在通过浏览器访问网站时只需要记住网站的域名即可。负载均衡技术能够平衡服务器集群中所有的服务器和请求应用之间的通信负载,根据实时响应时间进行判断,将任务交由负载最轻的服务器来处理,以实现真正的智能通信管理和最佳的服务器群性能,从而使网站始终保持运行和保证其可访问性。DNS负载均衡技术的实现原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。
步骤S12中的根据当前请求域名查询代理层以得到公用命名空间,具体地,根据域名进行解析到代理得到公用命名空间。其中公用命名空间为默认的命名空间,系统先得到默认的命名空间,进而在服务层中判断该当前请求域名是否已经被注册至JMX中,若注册,则进入步骤S14,若未注册,则进入步骤S15。
HDFS支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。Namenode负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改都将被Namenode记录下来。HDFS会给客户端提供一个统一的目录树,客户端通过路径来访问文件。命名空间用于管理整个文件系统的目录树以及文件与数据块的映射关系。在NameNode中的Namespace(命名空间)管理层是负责管理整个HDFS集群文件系统的目录树以及文件与数据块的映射关系。为了提高访问速度,Namespace管理的文件目录树存储在NameNode的内存中。
在步骤S14中,设备层预先建立命名空间集合,进而被服务层调用。通过MBeanServer获取该域名对应的命名空间,首先会有一个默认的命名空间,即公用命名空间,如存在对应的命名空间,则进行替换;例如,客户端访问可以有3个域名,每个域名对应不同的IP,每个域名对应一个命名空间模式,命名空间集合内有多个命名空间(命名空间1、2、3),根据域名2访问,找寻对应的命名空间2。根据域名2进行轮询命名空间集合,若找到命名空间2则作为对应的目标命名空间,进行替换。
当在命名空间集合内为查询到目标命名空间,也就是不属于命名空间的特有属性,则不进行替换,继续将公用命名空间作为目标命名空间。
在步骤S15中,若当前请求域名不为已注册的域名,则将公用命名空间作为目标命名空间。
本发明实施例提供的一种基于JMX的获取数据方法,包括获取由客户端发送的当前请求域名;根据当前请求域名查询代理层以得到公用命名空间;判断当前请求域名是否为已注册的域名;若是,则接收设备层建立的命名空间集合,并根据当前请求域名轮询命名空间集合以获取对应的目标命名空间,其中命名空间集合包括多个命名空间;当在命名空间集合内未查询到目标命名空间,则将公用命名空间作为目标命名空间;若否,则将公用命名空间作为目标命名空间以实现当前请求域名的访问数据。该方法通过获取当前请求域名查询得到公用命名空间,若该域名为已注册的域名,则通过轮询命名空间集合,也就是在多个命名空间内获取目标命名空间,若未查询到或者若该域名不为已注册的域名,则将公用命名空间作为目标命名空间。将现有的一个命名空间划分为多个命名空间,由现有的一个域名访问一个命名空间模式变为当前请求域名访问多个命名空间模式实现“多对多”的获取方式,降低对命名空间访问时获取数据的耦合性,同时提高访问数据的速度,多对多的模式更具有灵活性,进一步提高用户的体验感。
在上述实施例的基础上,步骤S12中的根据当前请求域名查询代理层以得到公用命名空间,包括:
根据当前请求域名进行解析得到MBean名称;
根据MBean名称查询代理层以得到公用命名空间。
具体地,域名解析把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
根据域名解析可以得到IP和qry,其中qry为一个MBean的整个值,也就是MBean名称,MBean就是一种规范的JavaBean,通过集成和实现一套标准的Bean接口,这种叫MBean,Mbean注册到MBeanServer中。对于代理层中的MBeanServe包括多种MBean种类,例如MBeanNameNodeInfo、MBeanNameNodeStatus、MBeanFSNamesystem等。MBean种类实际为Java代码的一个类,是HDFS瞬态和持久命名空间状态的容器。
在代理层查询MBean名称并将查询到的MBean名称返回至服务层,其查询到的MBean名称通过在MBeanServer中的MBeanFSNamesystem内找到,其返回的MBean名称为公用命名空间。
本发明实施例提供的根据当前请求域名进行解析得到MBean名称;根据MBean名称查询代理层以得到公用命名空间,通过域名解析确定公用命名空间。
在上述实施例的基础上,对应步骤S14中的接收设备层建立的命名空间集合,其中命名空间集合的建立通过以下步骤:
获取第一映射关系和第二映射关系,其中第一映射关系为负载均衡机制下第一IP和第一域名的关系,第二映射关系为第二IP和路径的关系;
通过第一映射关系轮询HDFS系统中已注册的域名和IP信息;
获取当前IP信息以判断当前IP信息是否存在于第二映射关系的第二IP内;
若存在,则在第二IP内获取与当前IP信息对应的目标IP,根据第二映射关系获取目标IP对应的目标路径;
根据目标路径获取路径属性值;
根据当前IP信息以及第一映射关系获取对应的域名信息;
将路径属性值与当前IP信息对应的域名信息组合为Map值以完成命名空间集合的建立;
若不存在,则获取公用路径,并根据公用路径获取公用路径属性值,其中公用路径为公用命名空间的路径;
将公用路径属性值与当前IP信息对应的域名信息组合为Map值以完成命名空间集合的建立。
具体地,在JMX设备层中将FSNamesystem添加multiNNreplaceAtt方法并进行注册,multiNNreplaceAtt方法主要获取该文件系统下所有NameSpace的特有属性及其对应值,包括但并不限于总存储容量,使用容量,剩余容量等属性。其中,multiNNreplaceAtt方法为获取命名空间的特有属性及其其他值的Java方法。
先获取第一映射关系和第二映射关系,其中第一映射关系(AccessZoneDomainMap)为负载均衡机制下的第一IP和第一域名的映射管理,第二映射关系(AccessZoneMap)为多个命名空间模式下的第二IP和路径的映射关系。需要说明的是,两种映射关系的IP可以相同,也可以不同,若相同,则两种映射关系可以形成第三映射关系,根据两种映射关系作为建立命名空间集合的基础。
通过第一映射关系轮询HDFS系统中注册过的域名和IP信息,并获取当前IP信息,判断当前IP信息是否存在与第二映射关系的第二IP内,需要说明的是,第一映射关系与第二映射关系中对应的IP、域名和路径分别存储至相应的数据库或者内存中,通过映射关系方便判断,在判断当前IP信息是否存在于第二IP内,实际为后台进行访问对应的数据库或内存。
如果存在,则在第二IP内获取与当前IP信息对应的目标IP,进而根据第二映射关系获取目标IP对应的目标路径。在得到目标路径后,获取路径的属性值,其属性值存储在属性列表中,依次从左边获取属性列表属性对应的值,这里的属性值包括目标路径(目录)属性值,也包括非目录属性值的周边属性值。
由于第二映射关系内仅是针对第二IP和路径的映射关系,则需要根据第一映射关系获取当前IP信息(也就是目标IP)获取对应的域名信息。将所有路径属性值以key:value格式存入Map中,以域名信息为Key,组合为Map值完成当前IP信息的命名空间的创建。
如果不存在,则获取一个默认路径,也就是公用路径,根据公用路径获取公用路径属性值,进而根据公用路径属性值对应的属性列表依次从左边获取属性列表属性对应的值,和上文的处理结果相同,将公用路径属性值与当前IP信息对应的域名信息组合为Map值以完成命名空间集合的建立。
作为一种优选地实施例,为了使得命名空间集合的属性值完整建立,对于属性值至少包括目录大小、文件个数的目标路径属性值以及端口号的周边属性值。
可以理解的是,一个域名对应多个IP,为了完整建立该命名空间集合,则需要遍历IP信息,最后全部遍历完成后将Map值添加至Map列表中。在数据传输过程中,通常采用字符串的形式进行以方便数据解析和传输。
作为一种优选的实施例,其字符串形式采用JSON格式。在完成命名空间集合的建立后,将Map值通过JSON格式生成字符串注入至代理层。
具体地,JSON文件是用来存储简单的数据结构和对象的文件,可以在web应用程序中进行数据交换;JSON是全称为JavaScript Object Notation,是一种有条理,易于访问的存储信息的方法。它为我们提供了一个可读的数据集合,我们可以通过合理的方式来访问这些数据。JSON文件可以存储简单的数据结构和对象。JSON文件在许多不同的编程API中都被支持。如今,JSON已被用于许多Web应用程序来进行数据交换,并且它们实际上不会在硬盘驱动器上保存“.JSON”文件,可以在互联网连接的计算机之间进行数据交换。某些应用程序允许用户将其保存在“.JSON”文件中。
图3为本发明实施例提供的一种设备层FSNamesystem方法的流程图,如图3所示:
S21:轮询AccessZoneDomainMap的IP,并判断AccessZoneDomainMap的当前IP是否存在于AccessZoneMap中,若存在,则进入步骤S22,若不存在,则进入步骤S23:
S22:获取当前IP的路径信息;
S24:根据路径信息查询对应的属性列表得到对应的路径属性;
S25:将路径属性和当前IP添加至Map结构;
S23:获取公用路径信息作为当前IP的路径信息,并进入至步骤S24;
S26:判断AccessZoneDomainMap是否轮询结束,若结束,则进入步骤S27,若未结束,则返回步骤S21;
S27:汇总Map结构并返回JSON格式的字符串。
本发明实施例提供的命名空间集合的建立,FSNamesystem类注册multiNNreplaceAtt方法,该方法主要获取该文件系统下所有NameSpace的特有属性及其对应值。通过额外注册方法,最大程度保存了HDFS整个文件系统的稳定性,便于后续实现“多对多”模式,提高访问数据的速度。
在上述实施例的基础上,步骤S14中的根据当前请求域名轮询命名空间集合以获取对应的目标命名空间,包括:
根据当前请求域名在代理层的MbeanServer中调用命名空间集合的特有属性集合;
轮询特有属性集合查询是否存在替换属性信息;
若存在,则获取替换属性列表,将替换属性列表依据替换属性信息进行替换并得到对应的目标命名空间。
具体地,命名空间集合的命名空间包括特有属性和对应的其他值,本实施例仅针对特有属性轮询,并确定其目标命名空间。
根据当前请求域名在代理层的MbeanServer中调用命名空间集合,从中获取该域名对应的特有属性集合,轮询所需要替换属性的裂变,遇到所需替换的属性之后,写入返回流,也就是将替换属性列表依据替换属性信息进行替换以得到对应的目标命名空间。
另外,不需要替换的属性返回HDFS文件系统的属性值,也就是公用命名空间作为目标命名空间。其次,若未获取到该域名对应的特有属性集合,则说明该域名不拥有自己的命名空间,不进行替换,直接返回HDFS文件系统的属性值。
本发明实施例提供的根据当前请求域名在代理层的MbeanServer中调用命名空间集合的特有属性集合;轮询特有属性集合查询是否存在替换属性信息;若存在,则获取替换属性列表,将替换属性列表依据替换属性信息进行替换并得到对应的目标命名空间,通过只在服务层进行属性值替换,降低对命名空间访问时获取数据的耦合性,同时提高访问数据的速度。
上述详细描述了基于JMX的获取数据方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的基于JMX的获取数据装置,图4为本发明实施例提供的一种基于JMX的获取数据装置的结构图。如图4所示,基于JMX的获取数据装置包括:
获取模块11,用于获取由客户端发送的当前请求域名;
查询模块12,用于根据当前请求域名查询代理层以得到公用命名空间;
判断模块13,用于判断当前请求域名是否为已注册的域名,若是,则触发轮询模块14,若否,则触发第一命名模块15;
轮询模块14,用于接收设备层建立的命名空间集合,并根据当前请求域名轮询命名空间集合以获取对应的目标命名空间,其中命名空间集合包括多个命名空间;
第二命名模块16,用于当在命名空间集合内未查询到目标命名空间,则将公用命名空间作为目标命名空间;
第一命名模块15,用于将公用命名空间作为目标命名空间以实现当前请求域名的访问数据。
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
本发明实施例提供的一种基于JMX的获取数据装置,包括获取由客户端发送的当前请求域名;根据当前请求域名查询代理层以得到公用命名空间;判断当前请求域名是否为已注册的域名;若是,则接收设备层建立的命名空间集合,并根据当前请求域名轮询命名空间集合以获取对应的目标命名空间,其中命名空间集合包括多个命名空间;当在命名空间集合内未查询到目标命名空间,则将公用命名空间作为目标命名空间;若否,则将公用命名空间作为目标命名空间以实现当前请求域名的访问数据。该装置通过获取当前请求域名查询得到公用命名空间,若该域名为已注册的域名,则通过轮询命名空间集合,也就是在多个命名空间内获取目标命名空间,若未查询到或者若该域名不为已注册的域名,则将公用命名空间作为目标命名空间。将现有的一个命名空间划分为多个命名空间,由现有的一个域名访问一个命名空间模式变为当前请求域名访问多个命名空间模式实现“多对多”的获取方式,降低对命名空间访问时获取数据的耦合性,同时提高访问数据的速度,多对多的模式更具有灵活性,进一步提高用户的体验感。
图5为本发明实施例提供的另一种基于JMX的获取数据装置的结构图,如图5所示,该装置包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现基于JMX的获取数据方法的步骤。
本实施例提供的基于JMX的获取数据装置可以包括但不限于智能手机、平板电脑、笔记本电脑或者台式电脑等。
其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的基于JMX的获取数据方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括Windows、Unix、Linux等。数据213可以包括但不限于基于JMX的获取数据方法所涉及到的数据等等。
在一些实施例中,基于JMX的获取数据装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
领域技术人员可以理解,图5中示出的结构并不构成对基于JMX的获取数据装置的限定,可以包括比图示更多或更少的组件。
处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的基于JMX的获取数据方法。
本发明实施例提供的一种基于JMX的获取数据装置,包括获取由客户端发送的当前请求域名;根据当前请求域名查询代理层以得到公用命名空间;判断当前请求域名是否为已注册的域名;若是,则接收设备层建立的命名空间集合,并根据当前请求域名轮询命名空间集合以获取对应的目标命名空间,其中命名空间集合包括多个命名空间;当在命名空间集合内未查询到目标命名空间,则将公用命名空间作为目标命名空间;若否,则将公用命名空间作为目标命名空间以实现当前请求域名的访问数据。该装置通过获取当前请求域名查询得到公用命名空间,若该域名为已注册的域名,则通过轮询命名空间集合,也就是在多个命名空间内获取目标命名空间,若未查询到或者若该域名不为已注册的域名,则将公用命名空间作为目标命名空间。将现有的一个命名空间划分为多个命名空间,由现有的一个域名访问一个命名空间模式变为当前请求域名访问多个命名空间模式实现“多对多”的获取方式,降低对命名空间访问时获取数据的耦合性,同时提高访问数据的速度,多对多的模式更具有灵活性,进一步提高用户的体验感。
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述基于JMX的获取数据方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述基于JMX的获取数据方法相同的有益效果。
图6为本发明实施例提供的一种基于服务层属性值替换的示意图,如图6所示,服务层属性值替换基于本发明提供的基于JMX的获取数据方法,该示意图包括:客户端通过域名访问获取大数据管理信息,域名可通过DNS服务器的负载均衡机制去指向虚拟IP;JMX服务层获得发送请求的客户端访问的域名,通过MbeanServer获取该域名对应NameSpace的特有属性,进行替换,如不属于NameSpace特有属性,不进行替换,即返回HDFS文件系统默认值。在设备层FSNamesystem类注册multiNNreplaceAtt方法以获取该文件系统下所有NameSpace的特有属性及其对应值,进而注册至代理层被服务层调用,服务层接收到域名后,通过域名解析并在代理层查询MBean名称(公用命名空间),代理层查询后将MBean名称返回至服务层。
服务层判断该域名是否为multiNNreplaceAtt方法下注册的域名,若是,则进入步骤5,查找对应的特有属性值,若查找到,则替换属性得到目标命名空间,若未查找到,则不进行替换,直接将MBean名称作为目标命名空间。若确定该域名不为multiNNreplaceAtt方法下注册的域名,则直接将MBean名称作为目标命名空间。将确定的目标命名空间发送至客户端以完成访问。
对于本发明提供的一种基于服务层属性值替换的示意图的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述基于JMX的获取数据方法相同的有益效果。
以上对本发明所提供的一种基于JMX的获取数据方法、基于JMX的获取数据装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。