云管理平台中各组件间消息转发的方法与装置制造方法

文档序号:6507276阅读:214来源:国知局
云管理平台中各组件间消息转发的方法与装置制造方法
【专利摘要】本公开涉及一种云管理平台中各组件间消息转发的方法与装置。该方法包括接收待转发的消息;自待转发的消息中提取消息头中的话题关键字;将提取出的话题关键字与最近常用关键字缓存中的键值对进行匹配;如果自消息头中提取出的话题关键字与最近常用关键字缓存中的关键字匹配,则直接将接收到的消息转发到与匹配的关键字对应的队列号所标识的队列中;如果自消息头中提取出的话题关键字与最近常用关键字缓存中的关键字不匹配,则利用预存的话题关键字库进行匹配,并将接收到的消息转发到匹配的队列中;将利用预存的话题关键字库匹配到的话题关键字和对应的队列号作为键值对添加到最近常用关键字缓存的最前端。本公开显著提高了消息转发效率。
【专利说明】云管理平台中各组件间消息转发的方法与装置

【技术领域】
[0001] 本公开涉及云计算领域,特别地,涉及一种云管理平台中各组件间消息转发的方 法与装置。

【背景技术】
[0002] 云管理平台消息中间件用于分布在不同节点的多个云平台组件之间的消息传递。 消息中间件常用的两种主要组件包括:一种是Topic(话题Exchange,一种是带有绑定关键 字的队列。Topic Exchange会根据消息所带的话题关键字来和Topic Exchange下所有的 绑定关键字进行模式匹配。匹配成功后,就会将消息转发到绑定关键字对应的队列。其中, 话题关键字用于标识一个消息的头部信息,该头部信息主要指示了该消息的来源信息和目 的地信息。
[0003] 在云平台消息中间件中,在相近一段时间内,一般同一用户会发出多次请求,这些 请求的任务信息的类型是相同的,对于同一个任务信息,其头部的关键字是相同的,只是消 息体不同,因此,可以得出这些请求的消息所带的话题关键字相同的概率比较大。在现有的 技术方案中,所有消息都需要进入Topic Exchange进行匹配和计算,无法重复利用之前的 匹配和计算结果,对于话题关键字相同的消息来说,无疑是重复消耗计算资源,而且限制了 消息转发效率。


【发明内容】

[0004] 本公开鉴于以上问题中的至少一个提出了新的技术方案。
[0005] 本公开在其一个方面提供了一种云管理平台中各组件间消息转发的方法,其可以 显著提高消息转发效率。
[0006] 本公开在其另一方面提供了一种云管理平台中各组件间消息转发的装置,其可以 显著提高消息转发效率。
[0007] 根据本公开,提供一种云管理平台中各组件间消息转发的方法,包括:
[0008] 接收待转发的消息;
[0009] 自待转发的消息中提取消息头中的话题关键字;
[0010] 将自消息头中提取出的话题关键字与最近常用关键字缓存中的键值对进行匹配, 键值对中包括关键字和与关键字对应的队列号;
[0011] 如果自消息头中提取出的话题关键字与最近常用关键字缓存中的关键字匹配,则 直接将接收到的消息转发到与匹配的关键字对应的队列号所标识的队列中;
[0012] 如果自消息头中提取出的话题关键字与最近常用关键字缓存中的关键字不匹配, 则利用预存的话题关键字库进行匹配,并将接收到的消息转发到匹配的队列中;
[0013] 将利用预存的话题关键字库匹配到的话题关键字和对应的队列号作为键值对添 加到最近常用关键字缓存的最前端。
[0014] 在本公开的一些实施例中,该方法还包括:
[0015] 在利用最近常用关键字缓存匹配成功的情况下,将利用最近常用关键字缓存匹配 到的关键字对应的键值对移到最近常用关键字缓存的最前端。
[0016] 在本公开的一些实施例中,在将自消息头中提取出的话题关键字与最近常用关键 字缓存中的键值对进行匹配时,如果自消息头中提取出的话题关键字与最近常用关键字缓 存中的第一个键值对不匹配,则转到预存的话题关键字库中进行匹配与查询。
[0017] 在本公开的一些实施例中,在将自消息头中提取出的话题关键字与最近常用关键 字缓存中的键值对进行匹配时,利用哈希算法进行匹配。
[0018] 根据本公开,还提供了一种云管理平台中各组件间消息转发的装置,包括:
[0019] 消息接收单元,用于接收待转发的消息;
[0020] 关键字提取单元,用于自待转发的消息中提取消息头中的话题关键字;
[0021] 关键字匹配单元,用于将自消息头中提取出的话题关键字与最近常用关键字缓存 中的键值对进行匹配,键值对中包括关键字和与关键字对应的队列号;
[0022] 缓存查询单元,用于如果自消息头中提取出的话题关键字与最近常用关键字缓存 中的关键字匹配,则直接将接收到的消息转发到与匹配的关键字对应的队列号所标识的队 列中;
[0023] 常规查询单元,用于如果自消息头中提取出的话题关键字与最近常用关键字缓存 中的关键字不匹配,则利用预存的话题关键字库进行匹配,并将接收到的消息转发到匹配 的队列中;
[0024] 缓存更新单元,用于将利用预存的话题关键字库匹配到的话题关键字和对应的队 列号作为键值对添加到最近常用关键字缓存的最前端。
[0025] 在本公开的一些实施例中,缓存更新单元在利用最近常用关键字缓存匹配成功的 情况下,将利用最近常用关键字缓存匹配到的关键字对应的键值对移到最近常用关键字缓 存的最前端。
[0026] 在本公开的一些实施例中,关键字匹配单元在将自消息头中提取出的话题关键字 与最近常用关键字缓存中的键值对进行匹配时,如果自消息头中提取出的话题关键字与最 近常用关键字缓存中的第一个键值对不匹配,则转到预存的话题关键字库中进行匹配与查 询。
[0027] 在本公开的一些实施例中,关键字匹配单元在将自消息头中提取出的话题关键字 与最近常用关键字缓存中的键值对进行匹配时,利用哈希算法进行匹配。
[0028] 在本公开的技术方案中,由于在最近常用关键字缓存中存储了最近经常使用的关 键字,在对同一用户在相近一段时间内发送的消息进行转发时,可以先将消息头中的话题 关键字与缓存中的关键字进行匹配,由于缓存中存储了少量最近常用的关键字键值对,因 此,可以通过一次或少量次数的匹配就可以匹配到与其关键字对应的转发队列号,在缓存 中匹配不到的情况下才到预存的话题关键字库中去匹配。由于现有技术中使用的预存的话 题关键字库中的话题关键字的顺序在使用中并不进行调整,虽然为同一用户具有相同话题 关键字的每个消息仍需到预存的话题关键字库中进行多次匹配才能查到相应的转发队列 号。可见,与现有技术相比,本公开的消息匹配方法显著提高了匹配效率,进而提升了消息 的转发效率。

【专利附图】

【附图说明】
[0029] 此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分。在附 图中:
[0030] 图1是本公开一个实施例的云管理平台中各组件间消息转发的方法的流程示意 图。
[0031] 图2是本公开一个实施例的云管理平台中各组件间消息转发的装置的结构示意 图。

【具体实施方式】
[0032] 下面将参照附图描述本公开。要注意的是,以下的描述在本质上仅是解释性和示 例性的,决不作为对本公开及其应用或使用的任何限制。除非另外特别说明,否则,在实施 例中阐述的部件和步骤的相对布置以及数字表达式和数值并不限制本公开的范围。另外, 本领域技术人员已知的技术、方法和装置可能不被详细讨论,但在适当的情况下意在成为 说明书的一部分。
[0033] 本公开下述实施例公开了一种应用于消息中间件的缓存机制,在最近常用话题关 键字缓存中存储少量最近常用的话题关键字键值对,当待转发消息进入消息中间件时,先 利用最近常用话题关键字缓存中的关键字对自消息中提取的话题关键字进行匹配,如果匹 配成功,则直接将消息转发到相应的队列中,否则在利用传统的关键字匹配方法进行匹配, 并将消息发送至匹配成功的队列中。
[0034] 图1是本公开一个实施例的云管理平台中各组件间消息转发的方法的流程示意 图。
[0035] 如图1所示,该实施例可以由消息中间件执行,具体可以包括以下步骤:
[0036] S102,接收待转发的消息。
[0037] S104,自待转发的消息中提取消息头中的话题关键字。
[0038] S106,将自消息头中提取出的话题关键字与最近常用关键字缓存中的键值对进行 匹配,键值对中包括关键字和与关键字对应的队列号,队列号用来指示键值对中的关键字 与消息中的话题关键字相匹配的队列,其中,最近常用关键字缓存中保存了之前匹配成功 的键值对。
[0039] S108,如果自消息头中提取出的话题关键字与最近常用关键字缓存中的关键字匹 配,则直接将接收到的消息转发到与匹配的关键字对应的队列号所标识的队列中。
[0040] S110,如果自消息头中提取出的话题关键字与最近常用关键字缓存中的关键字不 匹配,则利用预存的话题关键字库进行匹配,并将接收到的消息转发到匹配的队列中。
[0041] S112,将利用预存的话题关键字库匹配到的话题关键字和对应的队列号作为键值 对添加到最近常用关键字缓存的最前端,使得后续具有与本条相同话题关键字的消息仅通 过一次匹配即可成功地实现消息的转发。
[0042] 具体地,由于同一用户通常会在一段时间内连续发送多条消息,并且这些消息具 体相同话题关键字的概率较大。又由于最近常用关键字缓存中存储了最近常用的一些关键 字,因此可以先将消息头中的话题关键字与缓存中的关键字进行匹配,如果相邻两个消息 中的话题关键字相同,则可以仅与缓存中的关键字键值对匹配一次,即与缓存中的第一个 键值对匹配,即可成功的匹配到相应的转发队列号,这种同一用户在一段时间内连续发送 多条消息的情况,针对每条消息仅通过一次话题关键字匹配即可实现消息的转发。
[0043] 如果采用现有技术,虽然现有技术中使用的预存的话题关键字库中也存储了关键 字的键值对,但是这些键值对的顺序是固定的,即不会随着匹配的结果进行调整。因此,如 果与某个用户的消息中的话题关键字匹配的关键字如果处于该库中的关键字末尾,则针对 同一用户在一段时间内发送的具有相同话题关键字的多条消息,其每条消息均需从该库的 头部开始进行匹配,直至匹配到尾部才能匹配成功,如果该用户的每条消息都这样匹配,则 显而易见,其匹配效率是非常低下的。
[0044] 如果针对上述这种极端例子,虽然第一次时不能在缓存中找到与之匹配的关键 字,但是在经历了一次传统的话题关键字库的匹配后,就将该关键字键值对更新到最近常 用关键字缓存的最前端,在处理该用户具有相同话题关键字的后续消息时,可以利用最近 常用关键字缓存通过一次匹配就可以成功地匹配到待转发的队列,可见,该实施例通过最 近常用关键字缓存进行匹配的方式显著提升了匹配效率。
[0045] 在该实施例中,由于在最近常用关键字缓存中存储了最近经常使用的关键字,在 对同一用户在相近一段时间内发送的消息进行转发时,可以先将消息头中的话题关键字与 缓存中的关键字进行匹配,由于缓存中存储了少量最近常用的关键字键值对,因此,可以通 过一次或少量次数的匹配就可以匹配到与其关键字对应的转发队列号,在缓存中匹配不到 的情况下才到预存的话题关键字库中去匹配。由于现有技术中使用的预存的话题关键字库 中的话题关键字的顺序在使用中并不进行调整,虽然为同一用户具有相同话题关键字的每 个消息仍需到预存的话题关键字库中进行多次匹配才能查到相应的转发队列号。可见,与 现有技术相比,本公开的消息匹配方法显著提高了匹配效率,进而提升了消息的转发效率。 [0046] 进一步地,如果在利用预存的话题关键字库匹配失败的情况下,则丢弃该待转发 的消息。
[0047] 接下来,对本公开实施例中的最近常用关键字缓存进行说明:
[0048] 最近常用关键字缓存中存储了最近一次匹配成功的关键字键值对,该关键字键值 对可以是通过缓存本身匹配成功的,也可以是通过常规的话题关键字库匹配成功的键值 对,该关键字键值对中包括关键字和与关键字对应的队列号。
[0049] 在初始化时,最近常用关键字缓存中没有任何关键字键值对。此时,在利用预存的 话题关键字库匹配成功后,将匹配成功的关键字键值对保存到最近常用关键字缓存的最前 端,使得下次再进行消息转发时可以先与保存到最近常用关键字缓存中的关键字键值对进 行比较。
[0050] 为了提高利用缓存匹配的效率,该缓存的大小可以根据需要进行设置。例如,该缓 存中可以只存储上次匹配成功的话题关键字对应的键值对,此外,该缓存中还可以存储最 近几次匹配成功的话题关键字对应的键值对,其中,键值对的个数可以预先配置,也可以动 态调整。
[0051] 下述表1示出了一个最近常用关键字缓存的实例。
[0052]

【权利要求】
1. 一种云管理平台中各组件间消息转发的方法,其特征在于,包括: 接收待转发的消息; 自所述待转发的消息中提取消息头中的话题关键字; 将自消息头中提取出的话题关键字与最近常用关键字缓存中的键值对进行匹配,所述 键值对中包括关键字和与关键字对应的队列号; 如果自消息头中提取出的话题关键字与所述最近常用关键字缓存中的关键字匹配,贝U 直接将接收到的消息转发到与匹配的关键字对应的队列号所标识的队列中; 如果自消息头中提取出的话题关键字与所述最近常用关键字缓存中的关键字不匹配, 则利用预存的话题关键字库进行匹配,并将接收到的消息转发到匹配的队列中; 将利用所述预存的话题关键字库匹配到的话题关键字和对应的队列号作为键值对添 加到所述最近常用关键字缓存的最前端。
2. 根据权利要求1所述的云管理平台中各组件间消息转发的方法,其特征在于,所述 方法还包括: 在利用所述最近常用关键字缓存匹配成功的情况下,将利用所述最近常用关键字缓存 匹配到的关键字对应的键值对移到所述最近常用关键字缓存的最前端。
3. 根据权利要求1所述的云管理平台中各组件间消息转发的方法,其特征在于,在将 自消息头中提取出的话题关键字与所述最近常用关键字缓存中的键值对进行匹配时,如果 自消息头中提取出的话题关键字与所述最近常用关键字缓存中的第一个键值对不匹配,贝U 转到所述预存的话题关键字库中进行匹配与查询。
4. 根据权利要求1所述的云管理平台中各组件间消息转发的方法,其特征在于,在将 自消息头中提取出的话题关键字与所述最近常用关键字缓存中的键值对进行匹配时,利用 哈希算法进行匹配。
5. -种云管理平台中各组件间消息转发的装置,其特征在于,包括: 消息接收单元,用于接收待转发的消息; 关键字提取单元,用于自所述待转发的消息中提取消息头中的话题关键字; 关键字匹配单元,用于将自消息头中提取出的话题关键字与最近常用关键字缓存中的 键值对进行匹配,所述键值对中包括关键字和与关键字对应的队列号; 缓存查询单元,用于如果自消息头中提取出的话题关键字与所述最近常用关键字缓存 中的关键字匹配,则直接将接收到的消息转发到与匹配的关键字对应的队列号所标识的队 列中; 常规查询单元,用于如果自消息头中提取出的话题关键字与所述最近常用关键字缓存 中的关键字不匹配,贝村Ij用预存的话题关键字库进行匹配,并将接收到的消息转发到匹配 的队列中; 缓存更新单元,用于将利用所述预存的话题关键字库匹配到的话题关键字和对应的队 列号作为键值对添加到所述最近常用关键字缓存的最前端。
6. 根据权利要求5所述的云管理平台中各组件间消息转发的装置,其特征在于,所述 缓存更新单元在利用所述最近常用关键字缓存匹配成功的情况下,将利用所述最近常用关 键字缓存匹配到的关键字对应的键值对移到所述最近常用关键字缓存的最前端。
7. 根据权利要求5所述的云管理平台中各组件间消息转发的装置,其特征在于,所述 关键字匹配单元在将自消息头中提取出的话题关键字与所述最近常用关键字缓存中的键 值对进行匹配时,如果自消息头中提取出的话题关键字与所述最近常用关键字缓存中的第 一个键值对不匹配,则转到所述预存的话题关键字库中进行匹配与查询。
8.根据权利要求5所述的云管理平台中各组件间消息转发的装置,其特征在于,所述 关键字匹配单元在将自消息头中提取出的话题关键字与所述最近常用关键字缓存中的键 值对进行匹配时,利用哈希算法进行匹配。
【文档编号】G06F17/30GK104346401SQ201310341984
【公开日】2015年2月11日 申请日期:2013年8月8日 优先权日:2013年8月8日
【发明者】樊勇兵, 秦润锋, 刘艺, 何晓武, 姚玉凤, 丁圣勇, 李巧玲, 陈天 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1