掌桥专利:专业的专利平台
掌桥专利
首页

管理分布式应用系统中的应用节点的方法、设备和产品

文献发布时间:2023-06-19 11:11:32


管理分布式应用系统中的应用节点的方法、设备和产品

技术领域

本公开的各实现方式涉及分布式应用系统,更具体地,涉及用于管理分布式应用系统中的应用节点的方法、设备和计算机程序产品。

背景技术

随着网络技术的发展,目前已经存在大量分布式应用系统。例如,交通状态监视系统可以是分布式应用系统的一个示例。在交通状态监控环境中,例如部署在车辆上的移动应用节点以及部署在路边设施上的固定应用节点已经可以监视道路状态。这些节点可以将监视到的数据传输至例如监视服务器等设备处以用于进一步处理。又例如,生产线监视系统可以是分布式应用系统的另一示例。可以在工厂的生产线中的多个位置部署监视应用节点以便采集生产线的运行状态,监视应用节点可以被连接至监视服务器,并且被进一步连接至数据中心。

在分布式应用系统中,各个应用节点可以具有计算能力和存储能力。应用节点可以向外发布数据,并且可以访问来自一个或多个其他应用节点的中的数据。此时,如何管理分布式应用环境中的大量应用节点,成为一个研究热点。

发明内容

因而,期望能够开发并实现一种以更为有效的方式来管理应用系统的技术方案。期望该技术方案能够与现有的应用系统相兼容,并且通过改造现有应用系统的各种配置,来以更为有效的方式管理应用系统中的任务。

根据本公开的第一方面,提供了一种用于管理分布式应用系统中的应用节点的方法。在该方法中,获取分布式应用系统中的多个应用节点的状态。基于获取的状态,确定多个应用节点中的故障应用节点。根据分布式应用系统的层级结构,确定故障应用节点的父亲应用节点,层级结构描述多个应用节点之间的连接关系。向分布式应用系统的节点映射关系中添加描述故障应用节点和父亲应用节点之间的关联关系的附加映射条目,节点映射关系中的映射条目描述多个应用节点中的应用节点与应用节点在分布式应用系统中的地址之间的关联关系。

根据本公开的第二方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得电子设备执行用于管理分布式应用系统中的应用节点的动作。该动作包括:获取分布式应用系统中的多个应用节点的状态;基于获取的状态,确定多个应用节点中的故障应用节点;根据分布式应用系统的层级结构,确定故障应用节点的父亲应用节点,层级结构描述多个应用节点之间的连接关系;以及向分布式应用系统的节点映射关系中添加描述故障应用节点和父亲应用节点之间的关联关系的附加映射条目,节点映射关系中的映射条目描述多个应用节点中的应用节点与应用节点在分布式应用系统中的地址之间的关联关系。

根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。

附图说明

结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:

图1示意性示出了分布式应用系统中的应用节点的层级结构的框图;

图2示意性示出了用于交通状态监控的分布式应用系统中的用于采集道路信息的应用节点的框图;

图3示意性示出了根据本公开的示例性实现方式的用于管理分布式应用系统中的应用节点的过程的框图;

图4示意性示出了根据本公开的示例性实现方式的用于管理分布式应用系统中的应用节点的方法的流程图;

图5示意性示出了根据本公开的示例性实现方式的当分布式应用系统中出现故障应用节点的处理过程的框图;

图6示意性示出了根据本公开的示例性实现方式的由父亲应用节点来执行故障应用节点的功能的过程的框图;

图7示意性示出了根据本公开的示例性实现方式的由父亲应用节点发布数据对象的过程的框图;

图8示意性示出了根据本公开的示例性实现方式的用于访问分布式应用系统中的数据对象的过程的框图;以及

图9示意性示出了根据本公开的示例性实现的用于管理分布式应用系统中的应用节点的设备的框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

将会理解,在下文中将仅以用于监视交通状态的系统作为分布式应用系统的示例。在本公开的其他示例性实现方式中,分布式应用系统还可以是用于监视生产线的运行状态的生产线监视系统。将首先参见图1描述本公开的示例性实现方式的应用环境。

图1示意性示出了分布式应用系统中的应用节点的层级结构的框图100。该树状结构示意性示出了分布式应用系统中的各个应用节点的连接关系。如图1所示,分布式应用系统可以包括多个层级。例如,云110可以位于根节点处,并且云110可以包括多个孩子应用系统,例如数据中心120、…、数据中心122。数据中心120还可以包括孩子应用系统,例如边缘节点130、…、边缘节点132。在边缘节点下层的叶节点位置,还可以存在应用系统。边缘节点130可以具有孩子节点,例如,部署在车辆处的应用节点140、…、以及应用节点142,并且边缘节点132可以具有孩子节点:部署在车辆处的应用节点144、…、以及应用节点146。

在此的应用系统140、142、144、…、以及146可以随着车辆的运动而采集周围的道路状态和车辆状态等。图2示意性示出了用于交通状态监控的分布式应用系统中的用于采集道路信息的应用节点的框图200。如图2所示,应用节点140所在的车辆正在从东向西行驶,因而该应用节点140可以采集视野范围210内的状态信息。应用节点142所在的车辆正在从南向北行驶,因而该应用节点可以采集视野范围220内的状态信息。

应用节点140和应用节点142可以分别基于采集到的信息来生成有关道路状态的数据对象,并且分别向上层的边缘节点130发送生成的数据对象。继而,边缘节点130可以基于来自应用节点140和应用节点142的数据对象,来生成能够全面反映道路状态的数据对象。在如图1所示的分布式应用系统中,各个应用节点可以独立运行,并且可以按照各自的规则来针对数据对象的文件进行命名。例如,两个应用节点140和142都可以按照时间顺序,将生成的数据对象命名为“D001”、“D002”,等等。在整个分布式应用系统中,将会存在重名的数据对象。

分布式应用系统中的大量应用节点可以自己定义待发布文件的名称并且向外发布文件。目前已经提供了用于管理分布式应用系统中的数据对象的技术方案。为了保证由于文件命名的唯一性,目前已经提出了基于文件的哈希来作为文件的唯一标识符。然而,哈希通常由一系列字符组成,难以直接从以哈希表示的文件名称中得知文件的具体内容。

为了提高文件名称的可读性,目前已经提出了支持用户命名文件的技术方案,通过向用户给出的文件名称添加以应用节点的标识符表示的前缀或者后缀的方式,可以确保文件命名的唯一性。例如,假设应用节点140将文件命名为“D001”,并且应用节点140的标识符为“EN001”,则此时文件的名称可以表示为文件名称:“EN001-D001”。以此方式,可以唯一地标识分布式应用系统中的各个文件。相对于包括无序字符的哈希而言,上述文件名称具有更好的可读性。可以在可读的文件名称和文件哈希之间建立映射关系,用户可以经由该映射关系来找到与可读文件相对应的文件哈希,进而访问文件。

应用节点可以被赋予多种权利,例如利用该应用节点的标识符来发布文件的权利。例如,标识符为“EN001”的应用节点可以向自己发布的文件添加前缀“EN001”。随着分布式应用系统的运行,在分布式应用系统中的一个或多个应用节点可能会出现故障,此时与故障的应用节点相关的数据发布和访问将会面临停止,进而造成整个分布式应用系统的可靠性和稳定性的降低。此时,如何以更为可靠和有效的方式来管理分布式应用系统中的各个应用节点,成为一个研究热点。

为了解决上文描述的缺陷,根据本公开的示例性实现方式,提出了一种用于管理分布式应用中的应用节点的方法。图3示意性示出了根据本公开的示例性实现方式的用于管理分布式应用系统中的应用节点的过程的框图300。如图3所示,分布式应用系统可以具有节点映射310,该节点映射310可以指示应用节点的名称和地址之间的关联关系。通过可读的应用节点的名称,可以便于用户和/或管理员来区分分布式应用系统中的多个应用节点。

在该方法中,当分布式应用系统中出现故障应用节点(例如,便于节点130)时,可以在故障应用节点和该故障应用节点的父亲应用节点(数据中心120)之间建立关联关系320。具体地,节点映射关系310中最后一行以虚线示出的部分示出了建立的关联关系320。进一步,在分布式应用系统的后续操作中,建立的关联关系可以将原本指向故障应用节点的访问请求转发至数据中心120,以便由数据中心120来代替故障节点的功能。

利用本公开的示例性实现方式,可以利用故障应用节点的父亲应用节点来代替故障应用节点。以此方式,分布式应用系统中的各个节点的功能可以正常运行,进而可以确保分布式应用系统的稳定运行。在下文中,将参见图4描述有关本公开的示例性实现方式的更多细节。

图4示意性示出了根据本公开的示例性实现方式的用于管理分布式应用系统中的应用节点的方法400的流程图。在框410处,可以获取分布式应用系统中的多个应用节点的状态。根据本公开的示例性实现方式,可以基于多方面的信息来确定应用节点的状态。例如,可以获取应用节点对于访问请求的响应时间,可以获取应用节点的处理器的运行状态等待。

在框420处,基于获取的状态,可以确定多个应用节点中的故障应用节点。可以基于采集到的多方面的信息,来确定应用节点是否出现故障。如果针对应用节点的访问请求长期未被响应,则可以确定该应用节点出现故障,等等。返回图3,假设针对边缘节点130的访问请求长期未被响应,则可以确定该边缘节点130为故障应用节点。

继续参见图4中的框430,根据分布式应用系统的层级结构,可以确定故障应用节点的父亲应用节点。在已经确定应用节点出现故障的情况下,则可以基于描述多个应用节点之间的连接关系的层级结构(例如上文参见图1示出的树状结构),来确定故障应用节点的父亲应用节点。返回图3,可以在层级结构中查找故障的边缘节点130的父亲应用节点(即,数据中心120)。

如图4中的框440所示,可以向分布式应用系统的节点映射关系310中添加描述故障应用节点和父亲应用节点之间的关联关系的附加映射条目320。在此,节点映射关系310中的映射条目(例如,图3中的以实线框示出的部分)可以描述多个应用节点中的应用节点与应用节点在分布式应用系统中的地址之间的关联关系。例如,“EN001”可以表示边缘节点130的名称,并且该边缘节点130的地址为IPV/10.0.3.5。“DC”可以表示数据中心120的名称,并且该数据中心120的地址为IPV/10.0.2.5。

在已经确定边缘节点130出现故障的情况下,可以向节点映射关系310中添加附加条目320。该附加条目320可以在边缘节点130和数据中心120之间建立关联关系。通过该附加条目320,在不能访问名称为“EN001”的边缘节点130时,可以替代地访问名称为“DC”的数据中心120,以便利用数据中心120来替代边缘节点130的功能。

根据本公开的示例性实现方式,可以利用父亲应用节点来代替故障应用节点的功能。将会理解,在此的访问请求可以是多种类型的访问请求。在下文中,将分别针对写入请求、处理请求和发布请求来描述更多细节。

根据本公开的示例性实现方式,如果确定接收到针对故障应用节点的访问请求,可以基于节点映射关系310中的附加映射条目320来确定故障应用节点的父亲应用节点。假设接收到针对边缘节点130的访问请求,可以基于附加条目320来找到该边缘节点130的父亲应用节点的名称“DC”。继而,基于节点映射关系310中的与父亲应用节点相关联的映射条目330,可以获取父亲应用节点在分布式应用系统中的地址“IPV/10.0.2.5”。继而,基于该地址可以将原本发送至边缘节点130的访问请求转发至数据中心120。在下文中,将参见图5描述有关数据流的更多细节。

图5示意性示出了根据本公开的示例性实现方式的当分布式应用系统中出现故障应用节点的处理过程的框图500。如图5所示,应用节点510可以向边缘节点130发送520访问请求。如果边缘节点130长期未响应,则应用节点510可以接收522指示访问失败的信号。此时,可以确定边缘节点130中出现故障,进而可以通过查找节点映射关系310找到边缘节点130的父亲应用节点(即,数据中心120)。可以将原本针对边缘节点130的访问请求发送524至数据中心120。此时,数据中心120即可代替边缘节点130来执行526边缘节点的功能。例如,数据中心120可以从其他应用节点接收数据对象、处理接收到的一个或多个数据对象以生成、以及向云发布生成的数据对象。

根据本公开的示例性实现方式,如果确定访问请求为向故障应用节点写入数据对象的写入请求,则可以基于父亲应用节点来更新写入请求中的故障应用节点。具体地,图6示意性示出了根据本公开的示例性实现方式的由父亲应用节点来执行故障应用节点的功能的过程的框图600。假设部署在车辆上的应用节点140和142原本向边缘节点130传输采集到的数据对象,则此时可以分别经由箭头610和620所示来向数据对象120传输数据对象。数据中心120可以代替边缘节点130来接收来自应用节点140和142的数据对象。

根据本公开的示例性实现方式,如果确定访问请求为由故障应用节点处理数据对象的处理请求,可以指示父亲应用节点来处理数据对象。继续参见图6,数据中心120可以代替边缘节点130来执行处理接收到的数据对象的任务。例如,数据中心120可以基于来自应用节点140和142的数据对象,来生成包括更加丰富的环境信息的数据对象。此时,尽管边缘节点130出现故障并且不能继续工作,该边缘节点130的父节点可以代替地执行相应的任务。

利用本公开的示例性实现方式,一方面可以以较为简单的方式从分布式应用系统中找到可以代替故障应用节点的备选应用节点。另一方面,由于数据中心120是故障的边缘节点130的父节点,并且两者之间直接耦合,因而向数据中心120传输数据对象并不会造成过多的时间开销。

根据本公开的示例性实现方式,还可以以迭代方式来执行上文参见图4描述的方法400。假设找到的数据中心120中出现故障,则可以进一步基于节点映射关系310来查找数据中心120的父亲应用节点,并且由找到的父亲应用节点来分别执行边缘节点130和数据中心120的功能。

根据本公开的示例性实现方式,如果确定访问请求为由故障应用节点向分布式应用系统发布数据对象的发布请求,可以指示父亲应用节点来代表故障应用节点向分布式应用系统发布数据对象。继续参见图6,在已经基于来自应用节点140和142的数据对象生成新的数据对象之后,数据中心120可以向云110发布620生成的新数据对象。

图7示意性示出了根据本公开的示例性实现方式的由父亲应用节点发布数据对象的过程的框图700。如图7中的箭头720和722所示,数据对象710和712可以分别被传输至数据中心120。数据中心120可以基于接收到的数据对象710和712来生成724新的数据对象730。在数据中心120处,可以基于故障应用节点的标识符(例如,边缘节点130的名称“EN001”)来生成数据对象的名称。具体地,数据中心120可以代表边缘节点130向数据对象的原有名称添加前缀“EN001”,以便形成新的名称。例如,假设新的数据对象730的名称为“D001”,则该数据对象730可以被重新命名为“EN001-D001”,以便形成全局唯一的数据对象740。继而,数据中心120可以代表边缘节点130来向云110发布728全局唯一的数据对象740。

将会理解,在分布式应用系统中各个应用节点的功能都是预先配置的。通常而言,父亲应用节点具有较高的级别并且可以向较低级别的孩子应用节点授予执行某个或某些功能的许可。例如,数据中心120可以向边缘节点130授予发布数据对象的许可。利用本公开的示例性实现方式,由于数据中心120本身具有授予许可的权利,因而该数据中心120可以向自身授予执行发布数据对象的许可。以此方式,可以在不需要额外的授权机制的情况下,以较为简单并且有效的方式向分布式应用系统中的其他应用节点授予执行故障节点相关功能的许可。

将会理解,在出现故障之前,边缘节点130可能已经发布了大量数据对象,并且这些数据对象的名称中均包括前缀“EN001”。在分布式应用系统中,由于计算资源和存储资源都是分布式的,包括前缀“EN001”的大量数据对象可以在各个应用节点之间移动或者拷贝,这使得由边缘节点130发布的数据对象可能会存在多个副本并且被分布在分布式应用系统的一个或多个应用节点中。此时,边缘节点130的故障并不会导致这些副本的丢失。通过使用全局唯一的数据对象名称,仍然可以从分布式应用系统中访问由边缘节点130发布的数据对象。

根据本公开的示例性实现方式,如果接收到针对分布式应用系统中的数据对象的读取请求,可以基于数据对象的名称确定数据对象的哈希标识符。图8示意性示出了根据本公开的示例性实现方式的用于访问分布式应用系统中的数据对象的过程的框图800。可以接收读取请求810,可以从读取请求810中提取812数据对象的名称820。假设读取请求810期望访问名称为“EN001-D001”的数据对象,则从读取请求810中可以提取名称“EN001-D001”。

将会理解,由于分布式应用系统中可以包括一个或多个故障的应用节点,当期望被读取的目标数据对象位于这些故障的应用节点中时,则不能返回相应的数据对象,而是可以提供故障通知。具体地,可以基于哈希标识符确定数据对象在分布式应用系统中的地址。如果确定地址指向故障应用节点,则可以向读取请求的请求者提供故障通知。

根据本公开的示例性实现方式,分布式应用系统包括数据对象映射关系,数据对象映射关系中的映射条目可以描述分布式应用系统中的数据对象的哈希标识符与数据对象在分布式应用系统中的地址之间的关联关系。根据本公开的示例性实现方式,在数据对象映射关系中查找哈希标识符以确定数据对象的地址。

继续参见图8,可以利用数据对象的名称“EN001-D001”来在数据对象映射关系830中查找与该名称相对应的哈希标识符,进而找到相应的地址。如图8所示,可以确定名称为“EN001-D001”的数据对象的哈希标识符为“Qmer2i3uf23fjisdf1rD”并且地址为“ADDRESS001”。此时,可以在分布式应用系统中的地址“ADDRESS001”读取832在读取请求810中指定的目标数据对象840。将会理解,由于地址“ADDRESS001”可以唯一地表示数据对象在分布式应用系统中的地址,因而可以首先基于该地址确定数据对象所在的应用节点。如果该地址指向故障应用节点,则可以返回故障通知;如果该地址指向正常的应用节点,则可以访问该应用节点并且返回读取的目标数据对象。

在上文中已经参见图4至图7描述了针对分布式应用系统中出现的故障应用节点的处理过程。根据本公开的示例性实现方式,当故障应用节点被修复后,还可以更新节点映射关系310,以便使得由恢复的应用节点而不是故障应用节点的父亲应用节点来执行相应的功能。根据本公开的示例性实现方式,如果确定故障应用节点被恢复,可以从节点映射关系310中删除附加映射条目320。返回图3,假设边缘节点130中的故障已经被排除,则该边缘节点130恢复正常并且不再需要数据中心120来执行边缘节点130的功能。

根据本公开的示例性实现方式,为了使得边缘节点130可以重新执行各项功能,还可以指示父亲应用节点来恢复应用节点的功能。例如,数据中心120可以向边缘节点130赋予执行接收数据对象、处理数据对象以及发布数据对象的许可。利用本公开的示例性实现方式,当分布式应用系统中的故障被排除之后,仍然由边缘节点130执行自身的各项功能。根据本公开的示例性实现方式,可以周期性第监视分布式应用系统中的各个应用节点的状态。一旦发现故障应用节点,则可以基于上文描述的方法400来利用故障应用节点的父亲应用系统来代替应用节点。

可以从节点映射关系310中删除附加映射条目320,此时边缘节点130和数据中心120之间的关联关系不再存在。当某个应用节点向边缘节点130发送访问请求时,基于更新后的节点映射310可以直接确定边缘节点130的地址为“IPV/10.0.3.5”。此时,可以直接将访问请求发送至边缘节点130自身,而不是发送至数据中心120。利用本公开的示例性实现方式,如果分布式应用系统中的故障已经被恢复,则整个分布式应用系统的操作将迅速返回正常状态,并且每个应用节点可以继续执行各自的功能。

在上文中已经参见图2至图8详细描述了根据本公开的方法的示例,在下文中将描述相应的装置的实现。根据本公开的示例性实现,提供了一种用于管理分布式应用系统中的应用节点的装置。该装置包括:获取模块,配置用于获取分布式应用系统中的多个应用节点的状态;确定模块,配置用于基于获取的状态,确定多个应用节点中的故障应用节点;节点确定模块,配置用于根据分布式应用系统的层级结构,确定故障应用节点的父亲应用节点,层级结构描述多个应用节点之间的连接关系;以及向分布式应用系统的节点映射关系中添加描述故障应用节点和父亲应用节点之间的关联关系的附加映射条目,节点映射关系中的映射条目描述多个应用节点中的应用节点与应用节点在分布式应用系统中的地址之间的关联关系。

根据本公开的示例性实现方式,该装置进一步包括:查找模块,配置用于根据确定接收到针对故障应用节点的访问请求,基于节点映射关系中的附加映射条目来确定故障应用节点的父亲应用节点;地址确定模块,配置用于基于节点映射关系中的与父亲应用节点相关联的映射条目,获取父亲应用节点在分布式应用系统中的地址;以及转发模块,配置用于向父亲应用节点的地址转发访问请求。

根据本公开的示例性实现方式,该装置进一步包括:执行模块,配置用于利用父亲应用节点来执行故障应用节点的功能。

根据本公开的示例性实现方式,该执行模块包括:写入执行模块,配置用于根据确定访问请求为向故障应用节点写入数据对象的写入请求,基于父亲应用节点来更新写入请求中的故障应用节点,以便向父亲应用节点中写入数据对象。

根据本公开的示例性实现方式,该执行模块包括:处理执行模块,配置用于根据确定访问请求为由故障应用节点处理数据对象的处理请求,指示父亲应用节点来处理数据对象。

根据本公开的示例性实现方式,该执行模块包括:发布执行模块,配置用于根据确定访问请求为由故障应用节点向分布式应用系统发布数据对象的发布请求,指示父亲应用节点来代表故障应用节点向分布式应用系统发布数据对象。

根据本公开的示例性实现方式,该发布执行模块进一步包括:命名模块,配置用于指示父亲应用节点基于故障应用节点的标识符来生成数据对象的名称;以及发布模块,配置用于向分布式应用系统发布数据对象。

根据本公开的示例性实现方式,该装置进一步包括:删除模块,配置用于根据确定故障应用节点被恢复,从节点映射关系中删除附加映射条目;以及恢复模块,配置用于指示父亲应用节点来恢复应用节点的功能。

根据本公开的示例性实现方式,该装置进一步包括:哈希确定模块,配置用于根据确定接收到针对分布式应用系统中的目标数据对象的读取请求,基于目标数据对象的名称确定目标数据对象的哈希标识符;数据对象地址确定模块,配置用于基于哈希标识符确定目标数据对象在分布式应用系统中的地址;以及通知模块,配置用于根据确定地址指向故障应用节点,向读取请求的请求者提供故障通知。

根据本公开的示例性实现方式,分布式应用系统包括数据对象映射关系,数据对象映射关系中的映射条目描述分布式应用系统中的数据对象的哈希标识符与数据对象在分布式应用系统中的地址之间的关联关系。

根据本公开的示例性实现方式,该数据对象地址确定模块进一步包括:地址查找模块,配置用于在数据对象映射关系中查找哈希标识符以确定目标数据对象的地址。

图9示意性示出了根据本公开的示例性实现的用于管理分布式应用系统中的应用节点的设备900的框图。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。

设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的各个过程和处理,例如方法500,可由处理单元901执行。例如,在一些实现中,方法500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实现中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的方法500的一个或多个步骤。备选地,在其他实现中,CPU 901也可以以其他任何适当的方式被配置以实现上述过程/方法。

根据本公开的示例性实现方式,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得电子设备执行用于管理分布式应用系统中的应用节点的动作。该动作包括:获取分布式应用系统中的多个应用节点的状态;基于获取的状态,确定多个应用节点中的故障应用节点;根据分布式应用系统的层级结构,确定故障应用节点的父亲应用节点,层级结构描述多个应用节点之间的连接关系;以及向分布式应用系统的节点映射关系中添加描述故障应用节点和父亲应用节点之间的关联关系的附加映射条目,节点映射关系中的映射条目描述多个应用节点中的应用节点与应用节点在分布式应用系统中的地址之间的关联关系。

根据本公开的示例性实现方式,该动作进一步包括:根据确定接收到针对故障应用节点的访问请求,基于节点映射关系中的附加映射条目来确定故障应用节点的父亲应用节点;基于节点映射关系中的与父亲应用节点相关联的映射条目,获取父亲应用节点在分布式应用系统中的地址;以及向父亲应用节点的地址转发访问请求。

根据本公开的示例性实现方式,该动作进一步包括:利用父亲应用节点来执行故障应用节点的功能。

根据本公开的示例性实现方式,利用父亲应用节点来执行故障应用节点的功能包括:根据确定访问请求为向故障应用节点写入数据对象的写入请求,基于父亲应用节点来更新写入请求中的故障应用节点,以便向父亲应用节点中写入数据对象。

根据本公开的示例性实现方式,利用父亲应用节点来执行故障应用节点的功能包括:根据确定访问请求为由故障应用节点处理数据对象的处理请求,指示父亲应用节点来处理数据对象。

根据本公开的示例性实现方式,利用父亲应用节点来执行故障应用节点的功能包括:根据确定访问请求为由故障应用节点向分布式应用系统发布数据对象的发布请求,指示父亲应用节点来代表故障应用节点向分布式应用系统发布数据对象。

根据本公开的示例性实现方式,指示父亲应用节点来代表故障应用节点向分布式应用系统发布数据对象包括:指示父亲应用节点基于故障应用节点的标识符来生成数据对象的名称;以及向分布式应用系统发布数据对象。

根据本公开的示例性实现方式,该动作进一步包括:根据确定故障应用节点被恢复,从节点映射关系中删除附加映射条目;以及指示父亲应用节点来恢复应用节点的功能。

根据本公开的示例性实现方式,动作进一步包括:根据确定接收到针对分布式应用系统中的目标数据对象的读取请求,基于目标数据对象的名称确定目标数据对象的哈希标识符;基于哈希标识符确定目标数据对象在分布式应用系统中的地址;以及根据确定地址指向故障应用节点,向读取请求的请求者提供故障通知。

根据本公开的示例性实现方式,分布式应用系统包括数据对象映射关系,数据对象映射关系中的映射条目描述分布式应用系统中的数据对象的哈希标识符与数据对象在分布式应用系统中的地址之间的关联关系;以及其中基于哈希标识符确定数据对象在分布式应用系统中的地址包括:在数据对象映射关系中查找哈希标识符以确定目标数据对象的地址。

根据本公开的示例性实现,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的方法。

根据本公开的示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。

本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。

相关技术
  • 管理分布式应用系统中的应用节点的方法、设备和产品
  • 管理网络中的节点的方法、设备和计算机程序产品
技术分类

06120112833127