消息处理方法、消息处理装置、可读存储介质、电子设备.pdf
![消息处理方法、消息处理装置、可读存储介质、电子设备.pdf_第1页](https://img.zhuanlichaxun.net/fileroot5/2021-8/5/f78280af-a79f-4580-851c-2c0db613dca3/f78280af-a79f-4580-851c-2c0db613dca31.gif)
![消息处理方法、消息处理装置、可读存储介质、电子设备.pdf_第2页](https://img.zhuanlichaxun.net/fileroot5/2021-8/5/f78280af-a79f-4580-851c-2c0db613dca3/f78280af-a79f-4580-851c-2c0db613dca32.gif)
![消息处理方法、消息处理装置、可读存储介质、电子设备.pdf_第3页](https://img.zhuanlichaxun.net/fileroot5/2021-8/5/f78280af-a79f-4580-851c-2c0db613dca3/f78280af-a79f-4580-851c-2c0db613dca33.gif)
《消息处理方法、消息处理装置、可读存储介质、电子设备.pdf》由会员分享,可在线阅读,更多相关《消息处理方法、消息处理装置、可读存储介质、电子设备.pdf(20页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911136173.5 (22)申请日 2019.11.19 (71)申请人 泰康保险集团股份有限公司 地址 100031 北京市西城区复兴门内大街 156号 (72)发明人 韩佩利施小江 (74)专利代理机构 隆天知识产权代理有限公司 72003 代理人 章侃铱石海霞 (51)Int.Cl. G06F 9/54(2006.01) H04L 29/08(2006.01) (54)发明名称 消息处理方法、 消息处理装置、 可读存储介 质、 电子设备 (57)摘要 本发明公开了。
2、一种消息处理方法、 消息处理 装置、 计算机可读存储介质和电子设备, 涉及互 联网技术领域。 该消息处理方法配置于分布式发 布订阅消息系统中, 其中, 消息处理方法包括: 获 取一目标分区的偏移量状态链表; 其中, 偏移量 状态链表包括目标分区中各历史消息的偏移量 以及各历史消息的处理状态; 响应针对偏移量状 态链表的状态更新请求; 对偏移量状态链表进行 针对处理状态的遍历操作, 直至确定出处理状态 为未处理, 以确定目标偏移量, 将目标偏移量提 交至消息队列; 其中, 目标偏移量为在遍历偏移 量状态链表过程中确定出的最后一个处理状态 为已处理且未提交的历史消息的偏移量。 本公开 可以提高消息。
3、的处理速率。 权利要求书2页 说明书11页 附图6页 CN 111078422 A 2020.04.28 CN 111078422 A 1.一种消息处理方法, 应用于分布式发布订阅消息系统中, 所述消息处理方法包括: 获取一目标分区的偏移量状态链表; 其中, 所述偏移量状态链表包括所述目标分区中 各历史消息的偏移量以及各所述历史消息的处理状态; 响应针对所述偏移量状态链表的状态更新请求; 对所述偏移量状态链表进行针对处理状态的遍历操作, 直至确定出处理状态为未处 理, 以确定目标偏移量, 将所述目标偏移量提交至消息队列; 其中, 所述目标偏移量为在遍历所述偏移量状态链表过程中确定出的最后一个处。
4、理状 态为已处理且未提交的历史消息的偏移量。 2.根据权利要求1所述的消息处理方法, 其特征在于, 响应针对所述偏移量状态链表的 状态更新请求包括: 每隔第一预设时长响应针对所述偏移量状态链表的状态更新请求。 3.根据权利要求1或2所述的消息处理方法, 其特征在于, 获取一目标分区的偏移量状 态链表包括: 获取当前消息所属分区的偏移量状态链表; 若检测到所述偏移量状态链表中未存储所述当前消息的处理状态和偏移量, 则在所述 偏移量状态链表末端添加一存储节点, 以存储所述当前消息的处理状态和偏移量。 4.根据权利要求3所述的消息处理方法, 其特征在于, 信息更新指令为将所述当前消息 的处理状态更新。
5、为已处理的指令, 所述消息处理方法还包括: 若所述当前消息已被处理, 则响应所述信息更新指令, 存储更新后的所述当前消息的 处理状态。 5.根据权利要求1或2所述的消息处理方法, 其特征在于, 所述消息处理装置还包括: 确定所述偏移量状态链表中处理状态为已提交的存储节点; 将所述处理状态为已提交的存储节点丢弃。 6.根据权利要求1或2所述的消息处理方法, 其特征在于, 所述消息处理方法还包括: 若所述消息队列响应未接收到所述目标偏移量, 则重新提交所述目标偏移量。 7.根据权利要求1或2所述的消息处理方法, 其特征在于, 所述消息处理方法还包括: 若每隔第二预设时长未接收到所述状态更新请求, 。
6、则发送提醒信息。 8.一种消息处理系统, 其特征在于, 配置于分布式发布订阅消息系统中, 所述消息处理 系统包括: 链表确定装置, 用于确定一目标分区的偏移量状态链表; 其中, 所述偏移量状态链表包 括所述目标分区中各历史消息的偏移量以及各所述历史消息的处理状态; 偏移量监控装置, 用于发送针对所述偏移量状态链表的状态更新请求; 消息处理装置, 用于获取所述偏移量状态链表, 响应所述状态更新请求, 对所述偏移量 状态链表进行针对处理状态的遍历操作, 直至确定出处理状态为未处理, 以确定目标偏移 量, 将所述目标偏移量提交至消息队列; 其中, 所述目标偏移量为在遍历所述偏移量状态链表过程中确定出。
7、的最后一个处理状 态为已处理且未提交的历史消息的偏移量。 9.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 所述程序被处理器 执行时实现如权利要求1至7任一项所述的消息处理方法。 权利要求书 1/2 页 2 CN 111078422 A 2 10.一种电子设备, 其特征在于, 包括: 一个或多个处理器; 存储装置, 用于存储一个或多个程序, 当所述一个或多个程序被所述一个或多个处理 器执行时, 使得所述一个或多个处理器实现如权利要求1至7任一项所述的消息处理方法。 权利要求书 2/2 页 3 CN 111078422 A 3 消息处理方法、 消息处理装置、 可读存储介质、 电。
8、子设备 技术领域 0001 本公开涉及互联网技术领域, 具体而言, 涉及一种消息处理方法、 消息处理装置、 计算机可读存储介质和电子设备。 背景技术 0002 随着信息技术的迅猛发展, 大数据的爆炸式增长, 消息处理平台处理消息的能力 不再能满足人们的需求。 例如, 针对分布式发布订阅消息系统(kafka), 由于受到自身架构 设计的约束, 分布式发布订阅消息系统不能满足处理大量消息的需求。 0003 分布式发布订阅消息系统的架构设计可以包括以下几点: 在创建一个主题的同时 确定了该主题内的分区数量; 一个分区只能与一个消费者进程连接; 一个分区将生产的消 息根据推送到分区的先后顺序进行存储,。
9、 而且在同一分区中提交消息偏移量的过程是根据 存储到分区的先后顺序进行提交的; 在kafka中, 前一个消息的偏移量提交成功后, 消费者 才能对下一个消息进行消费。 然而, 在消息数量较大的情况下, 单进程的消费者在kafka中 可以消费消息, 并提交消息的偏移量, 却会因消息处理速率低而造成消息堆积的问题。 0004 需要说明的是, 在上述背景技术部分公开的信息仅用于加强对本公开的背景的理 解, 因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。 发明内容 0005 本公开的目的在于提供一种消息处理方法、 消息处理装置、 计算机可读存储介质 及电子设备, 进而至少在一定程度上克服由。
10、于现有技术的限制和缺陷而导致消息处理速率 低的问题。 0006 根据本公开的第一个方面, 提供一种消息处理方法, 应用于分布式发布订阅消息 系统中, 消息处理方法包括: 获取一目标分区的偏移量状态链表; 其中, 偏移量状态链表包 括目标分区中各历史消息的偏移量以及各历史消息的处理状态; 响应针对偏移量状态链表 的状态更新请求; 对偏移量状态链表进行针对处理状态的遍历操作, 直至确定出处理状态 为未处理, 以确定目标偏移量, 将目标偏移量提交至消息队列; 其中, 目标偏移量为在遍历 偏移量状态链表过程中确定出的最后一个处理状态为已处理且未提交的历史消息的偏移 量。 0007 根据本公开的第二个方。
11、面, 提供一种消息处理装置, 配置于分布式发布订阅消息 系统中, 消息处理装置包括: 链表获取模块, 用于获取一目标分区的偏移量状态链表; 其中, 偏移量状态链表包括目标分区中各历史消息的偏移量以及各历史消息的处理状态; 请求响 应模块, 用于响应针对偏移量状态链表的状态更新请求; 偏移量确定模块, 用于对偏移量状 态链表进行针对处理状态的遍历操作, 直至确定出处理状态为未处理, 以确定目标偏移量, 将目标偏移量提交至消息队列; 其中, 目标偏移量为在遍历偏移量状态链表过程中确定出 的最后一个处理状态为已处理且未提交的历史消息的偏移量。 0008 可选地, 请求响应模块还可以被配置为执行: 每。
12、隔第一预设时长响应针对偏移量 说明书 1/11 页 4 CN 111078422 A 4 状态链表的状态更新请求。 0009 可选地, 链表获取模块还可以被配置为执行: 获取当前消息所属分区的偏移量状 态链表; 若检测到偏移量状态链表中未存储当前消息的处理状态和偏移量, 则在偏移量状 态链表末端添加一存储节点, 以存储当前消息的处理状态和偏移量。 0010 可选地, 信息更新指令为将当前消息的处理状态更新为已处理的指令, 消息处理 装置还可以包括: 指令响应模块, 用于若当前消息已被处理, 则响应信息更新指令, 存储更 新后的当前消息的处理状态。 0011 可选地, 消息处理装置还可以包括: 。
13、节点处理模块, 可以被配置为执行: 确定偏移 量状态链表中处理状态为已提交的存储节点; 将处理状态为已提交的存储节点丢弃。 0012 可选地, 消息处理装置还可以包括: 偏移量提交模块, 用于若消息队列响应未接收 到目标偏移量, 则重新提交目标偏移量。 0013 可选地, 消息处理装置还可以包括: 信息发送模块, 可以被配置为执行: 若每隔第 二预设时长未接收到所述状态更新请求, 则发送提醒信息。 0014 根据本公开的第三个方面, 提供一种消息处理系统, 配置于分布式发布订阅消息 系统中, 消息处理系统包括: 链表确定装置, 用于确定一目标分区的偏移量状态链表; 其中, 偏移量状态链表包括目。
14、标分区中各历史消息的偏移量以及各历史消息的处理状态; 偏移量 监控装置, 用于发送针对偏移量状态链表的状态更新请求; 消息处理装置, 用于获取偏移量 状态链表, 响应状态更新请求, 对偏移量状态链表进行针对处理状态的遍历操作, 直至确定 出处理状态为未处理, 以确定目标偏移量, 将目标偏移量提交至消息队列; 其中, 目标偏移 量为在遍历偏移量状态链表过程中确定出的最后一个处理状态为已处理且未提交的历史 消息的偏移量。 0015 根据本公开的第四个方面, 提供一种计算机可读存储介质, 其上存储有计算机程 序, 程序被处理器执行时实现如上述的消息处理方法。 0016 根据本公开的第五个方面, 提供。
15、一种电子设备, 包括: 一个或多个处理器; 存储装 置, 用于存储一个或多个程序, 当一个或多个序被一个或多个处理器执行时, 使得一个或多 个处理器实现如上述的消息处理方法。 0017 本公开的示例性实施例具有以下有益效果: 0018 本公开的消息处理方法配置于分布式订阅消息系统, 首先, 获取一目标分区的偏 移量状态链表; 然后, 响应针对偏移量状态链表的状态更新请求, 随后, 对偏移量状态链表 进行针对处理状态的遍历操作, 直至确定出处理状态为未处理, 以确定目标偏移量, 将目标 偏移量提交至消息队列。 其中, 偏移量状态链表包括目标分区中各历史消息的偏移量以及 各历史消息的处理状态, 目。
16、标偏移量为在遍历偏移量状态链表过程中确定出的最后一个处 理状态为已处理且未提交的历史消息的偏移量。 处理状态是一个消费者进程里多线程对一 个分区的各历史消息进行乱序处理后, 得到的各历史消息的处理状态。 一方面, 由于本公开 可以通过一个消费者进程里多线程对一个分区的各历史消息进行乱序处理后, 再针对各历 史消息的处理状态进行遍历操作, 也就是说, 可以先对消息进行处理, 再等待提交消息的偏 移量, 避免了分布式订阅消息系统等待消息队列接收到前一个消息的偏移量, 再对后一个 的消息进行处理的过程。 因此, 本公开的消息处理方法降低了等待消息处理的时延, 提高了 处理消息的速率。 另一方面, 本。
17、公开提交至消息队列的目标偏移量是在遍历偏移量状态链 说明书 2/11 页 5 CN 111078422 A 5 表过程中确定出的最后一个处理状态为已处理且未提交的历史消息的偏移量, 该过程提高 了按照分区消息存储的顺序提交偏移量规则的准确性, 即减少了在分布式订阅消息系统中 消息被处理后再提交消息偏移量的差错率。 0019 应当理解的是, 以上的一般描述和后文的细节描述仅是示例性和解释性的, 并不 能限制本公开。 附图说明 0020 此处的附图被并入说明书中并构成本说明书的一部分, 示出了符合本公开的实施 例, 并与说明书一起用于解释本公开的原理。 显而易见地, 下面描述中的附图仅仅是本公开 。
18、的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据 这些附图获得其他的附图。 在附图中: 0021 图1示意性示出了根据本公开的示例性实施方式的一种消息处理方法的流程图; 0022 图2示意性示出了根据本公开的示例性实施方式的一种消息处理方法的交互流程 图; 0023 图3示意性示出了根据本公开的示例性实施方式的消息处理装置的方框图; 0024 图4示意性示出了根据本公开的另一示例性实施方式的消息处理装置的方框图; 0025 图5示意性示出了根据本公开的另一示例性实施方式的消息处理装置的方框图; 0026 图6示意性示出了根据本公开的另一示例性实施方式的消息。
19、处理装置的方框图; 0027 图7示意性示出了根据本公开的另一示例性实施方式的消息处理装置的方框图; 0028 图8示意性示出了根据本公开的示例性实施方式的一种消息处理系统的方框图; 0029 图9示意性示出了根据本公开的示例性实施方式的电子设备的方框图。 具体实施方式 0030 现在将参考附图更全面地描述示例实施方式。 然而, 示例实施方式能够以多种形 式实施, 且不应被理解为限于在此阐述的范例; 相反, 提供这些实施方式使得本公开将更加 全面和完整, 并将示例实施方式的构思全面地传达给本领域的技术人员。 所描述的特征、 结 构或特性可以以任何合适的方式结合在一个或更多实施方式中。 在下面的。
20、描述中, 提供许 多具体细节从而给出对本公开的实施方式的充分理解。 然而, 本领域技术人员将意识到, 可 以实践本公开的技术方案而省略特定细节中的一个或更多, 或者可以采用其它的方法、 组 元、 装置、 步骤等。 在其它情况下, 不详细示出或描述公知技术方案以避免喧宾夺主而使得 本公开的各方面变得模糊。 0031 需要说明的是, 本公开中, 用语 “包括” 、“包含” 用以表示开放式的包括在内的意 思, 并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等。 另外, 本公开所用的术语 “第一” 、“第二” 仅是为了区分的目的, 不应当作为本公开内容的限制。 0032 此外,。
21、 附图仅为本公开的示意性图解, 并非一定是按比例绘制。 图中相同的附图标 记表示相同或类似的部分, 因而将省略对它们的重复描述。 附图中所示的一些方框图是功 能实体, 不一定必须与物理或逻辑上独立的实体相对应。 可以采用软件形式来实现这些功 能实体, 或在一个或多个硬件模块或集成电路中实现这些功能实体, 或在不同网络和/或处 理器装置和/或微控制器装置中实现这些功能实体。 说明书 3/11 页 6 CN 111078422 A 6 0033 附图中所示的流程图仅是示例性说明, 不是必须包括所有的步骤。 例如, 有的步骤 还可以分解, 而有的步骤可以合并或部分合并, 因此实际执行的顺序有可能根据。
22、实际情况 改变。 0034 为了便于理解, 首先对本方案涉及的场景进行解释。 0035 近年来, 互联网领域各大应用系统规模不断扩大, 数据量呈指数型增长的趋势。 行 业厂商研发了开源流处理平台来解决数据处理问题, 但在处理过程中, 仍会因开源流处理 平台的架构设计问题达到处理消息的瓶颈。 例如, 分布式发布订阅消息系统。 0036 在分布式发布订阅消息系统的架构设计中, 一个分区只能与一个消费者进程连 接; 一个分区将消息按推送至分区的先后顺序进行存储, 而且在同一分区中提交消息偏移 量的过程是按照消息存储至分区的先后顺序进行提交的。 另外, 单进程的消费者能够消费 消息, 并正确提交消息的。
23、偏移量, 但面对生产者产生的数据量较大, 消息队列中的消息也比 较多的情况, 会造成分布式发布订阅消息系统中消息堆积的问题。 目前提出的技术方案是 增加分布式发布订阅消息系统中一个主题的分区数量, 同时增加消费者进程数量, 但由于 消息数量太多, 执行分区数量更改的操作会导致分布式发布订阅消息系统的开销很大。 因 此, 如何在分布式发布订阅消息系统中提高消息的处理速率, 是目前大数据时代需要解决 的问题。 0037 需要说明的是, 在本公开的示例性实施方式中, 下面所述的消息处理方法通常可 以由服务器来实现, 也就是说, 可以由服务器执行消息处理方法的各个步骤, 在这种情况 下, 消息处理装置。
24、可以配置在消息处理系统中, 那么, 消息处理系统可以配置在该服务器 中。 0038 如图1所示, 本公开的示例性实施方式的消息处理方法可以包括以下步骤: 0039 S102.获取一目标分区的偏移量状态链表。 0040 在本公开的示例性实施方式中, kafka消息队列需要确定一分区中当前提交的消 息的偏移量, 以进行后续消息的处理操作。 那么, 该分区可以为目标分区。 其中, 偏移量可以 为一消息在一个分区中的位置信息。 0041 偏移量状态链表可以包括目标分区中各历史消息的偏移量以及各历史消息的处 理状态。 具体地, 偏移量状态链表可以由多个存储节点构成, 每个存储节点中又可以包括目 标分区中。
25、对应历史消息的偏移量以及对应历史消息的处理状态, 且各历史消息的处理状态 可以是未提交消息的偏移量的处理状态。 也就是说, 各历史消息的消息处理状态的种类可 以是: 消息已处理且未提交消息的偏移量的处理状态, 消息未处理的处理状态, 也就是消息 未处理且未提交消息的偏移量的处理状态。 0042 需要说明的是, 在本示例实施例中, 消息已处理且未提交消息的偏移量的处理状 态可以为: 一个消费者进程里多线程可以对一个分区中的至少两个历史消息不按照正常顺 序进行处理, 但可以按照正常顺序提交消息的偏移量。 Kafka中正常处理消息的顺序可以 是, 按照分区中存储消息的先后顺序进行处理, 正常顺序提交。
26、消息的偏移量可以是, 按照分 区中存储消息的先后顺序进行提交。 0043 例如, 针对一个消费者进程消费消息的场景, 一个消费者进程里具有第一线程、 第 二线程以及第三线程。 一个分区按消息存储至分区的先后顺序包含有: 第一个消息、 第二个 消息和第三个消息, 在kafka系统需要服务器提交分区中当前提交的消息的偏移量情况下, 说明书 4/11 页 7 CN 111078422 A 7 服务器可以按照消息存储至分区的先后顺序提交消息的偏移量。 0044 第一线程可以将第一个消息处理成功, 且服务器正在提交第一个消息的偏移量; 第二线程可以将第二个消息处理成功, 且服务器可以等待第一个消息的偏移。
27、量提交成功后 再提交第二个消息的偏移量; 第三线程可以将第三个消息处理成功, 且服务器可以等待第 二个消息的偏移量提交成功后再提交第三个消息的偏移量。 0045 根据本公开的示例性实施例, 服务器可以获取当前消息所属的分区的偏移量状态 链表, 若检测到偏移量状态链表中未存储当前消息的处理状态和偏移量, 则在偏移量状态 链表末端添加一存储节点, 以存储当前消息的处理状态和偏移量。 0046 当前消息可以是一个消费者进程里一个线程正在处理的一个消息, 且该消息可以 包含在一个分区中, 也就是说, 该分区为当前消息所属的分区。 0047 在本公开的示例性实施方式中, 当前消息的头部可以包含所属分区的。
28、标识, 其中, 分区标识可以是分区的编号即数字, 也可以是分区的名称等等。 例如, 分区标识可以是1、 2、 分区1、 分区2等等。 服务器可以根据当前消息包含的所属分区的标识, 也就是说, 服务器可 以确定出获取到的偏移量状态链表为当前消息所属分区的偏移量状态链表。 0048 偏移量状态链表中的每个存储节点都是由服务器添加至偏移量状态链表中, 也就 是说, 偏移量状态链表的初始状态是空的, 服务器按照消息存储到分区的顺序为每个消息 添加一个存储节点。 0049 S104.响应针对偏移量状态链表的状态更新请求。 0050 在本公开的示例性实施方式中, 为了使kafka消息队列获取一个分区中当前。
29、提交 的消息的偏移量, 服务器接收到针对偏移量状态链表执行遍历操作, 进而获得分区中当前 提交的消息的偏移量的请求, 即该请求可以称为状态更新请求。 其中, 遍历操作可以是, 服 务器按照各历史消息的处理状态存储至偏移量状态链表先后顺序, 一个接一个地将处理状 态与使遍历操作停止的处理状态进行比对。 0051 根据本公开的示例性实施例, 偏移量监控装置可以每间隔固定时长向消息处理装 置发送针对偏移量状态链表的状态更新请求, 也就是说, 服务器每隔第一预设时长响应针 对偏移量状态链表的状态更新请求。 其中, 固定时长可以为第一预设时长。 0052 S106.偏移量状态链表进行针对处理状态的遍历操。
30、作, 直至确定出处理状态为未 处理, 以确定目标偏移量, 将目标偏移量提交至消息队列。 0053 在本公开的示例性实施方式中, 一个分区中的偏移量状态链表是单向的链表, 也 就是说, 服务器可以从偏移量状态链表的头部开始, 对偏移量状态链表针对处理状态进行 遍历操作。 0054 在本公开的示例性实施方式中, 为了确定出目标偏移量并提交至消息队列, 可以 对偏移量状态链表进行遍历操作, 而使得遍历操作停止的处理状态是未处理的处理状态, 其中, 未处理是指, 消息未被处理, 也未将消息的偏移量提交至消息队列。 0055 目标偏移量是指为在遍历偏移量状态链表过程中确定出的最后一个处理状态为 已处理且。
31、未提交的历史消息的偏移量。 其中, 已处理且未提交是指, 消息已经被处理但未将 消息的偏移量提交至消息队列。 0056 例如, 在一个分区的偏移量状态链表中包含: 第一个存储节点、 第二个存储节点、 第三个存储节点以及第四个存储节点, 该4个存储节点添加到偏移量状态链表顺序是按照 说明书 5/11 页 8 CN 111078422 A 8 消息存储到分区的先后顺序。 0057 第一个存储节点中消息的处理状态为已处理且未提交, 消息的偏移量为1; 第二个 存储节点中消息的处理状态为已处理且未提交, 消息的偏移量为2; 第三个存储节点中消息 的处理状态为未提交, 消息的偏移量为3; 第四个存储节点。
32、中消息的处理状态为已处理且未 提交, 消息的偏移量为4。 0058 在服务器响应状态更新请求的情况下, 从偏移量状态链表的第一个存储节点开始 进行遍历操作, 遍历操作的停止条件是消息的处理状态为未处理。 0059 首先, 服务器将每个存储节点中消息的处理状态与遍历操作的停止条件进行比 对, 第一个和第二个存储节点中消息的处理状态都为已处理且未提交, 接着, 比对第三个存 储节点中消息的处理状态, 结果是消息的处理状态相同, 则停止遍历, 并确定出遍历过程中 最后一个处理状态为已处理且未提交的历史消息的偏移量, 即第二个存储节点中消息的偏 移量, 随后, 将第二个存储节点中消息的偏移量提交至消息。
33、队列。 0060 需要说明的是, 在该过程中, 因为偏移量状态链表出现了第一个和第二个存储节 点中消息的处理状态都为已处理且未提交, 可以认为第一个存储节点中偏移量已提交, 也 就是说, 第二个存储节点中消息的偏移量是目标偏移量, 是服务器需要获取的该分区中当 前提交的消息的偏移量。 0061 根据本公开的示例性实施例, 信息更新指令为将所述当前消息的处理状态更新为 已处理的指令, 该信息更新指令可以由消息处理系统执行, 即消息处理系统将当前消息的 处理状态更新为已处理。 若对当前消息已进行处理, 服务器可以响应信息更新指令, 存储更 新后的当前消息的处理状态。 也就是说, 消息处理系统将当前。
34、消息的处理状态更新为已处 理, 并将更新后的处理状态发送该服务器, 接着, 服务器将存储更新后的当前消息的处理状 态。 0062 服务器对偏移量状态链表针对处理状态进行遍历操作的情况下, 可以根据更新后 的处理状态进行后续的操作。 0063 需要说明的是, 消息队列接收到提交的目标偏移量后, 将目标分区的偏移量记录 更新为目标偏移量。 其中, 偏移量记录是指在历史的某一时刻一分区中处理消息的位置记 录。 根据本公开的一个实施例, 若消息队列未接收到目标偏移量, 消息队列则可以向服务器 响应未接收到目标偏移量, 服务器将重新提交目标偏移量。 0064 根据本公开的示例性实施例, 服务器可以确定偏。
35、移量状态链表中处理状态为已提 交的存储节点; 并将处理状态为已提交的存储节点丢弃。 服务器将该存储节点丢弃后, 在对 偏移量状态链表进行针对处理状态的遍历操作的情况下, 将不再考虑该存储节点。 0065 也就是说, 服务器在进行遍历操作的情况下, 偏移量状态链表中只包含两种处理 状态, 一种处理状态为: 消息已处理且未提交消息的偏移量的, 另一种处理状态为: 消息未 处理且未提交消息的偏移量的处理状态。 0066 在本公开的示例性实施方式中, 若每隔第二预设时长未接收到所述状态更新请 求, 则发送提醒信息。 0067 服务器若在一段固定时长后未接收状态更新请求, 就会发送提醒信息给偏移量监 控。
36、装置。 其中, 提醒信息可以包含一段文字, 也可以包含一种具有提醒意义的标识, 例如, 颜 色等, 能实现提醒作用的信息都可以属于本公开保护范围内。 另外, 上述一段固定时长可以 说明书 6/11 页 9 CN 111078422 A 9 为第二预设时长, 且第二预设时长大于上述第一预设时长。 0068 在本公开的示例性实施方式中, 服务器可以发送提醒信息, 可以用于避免偏移量 监控装置长时间没有发送针对偏移量状态链表的状态更新请求, 使得服务器未获取一个分 区中当前提交的消息的偏移量, 进而无法进行后续消息的处理。 0069 本公开的示例性实施方式的消息处理方法可以先对消息进行处理, 再等待。
37、服务器 提交消息的偏移量, 避免了等待消息队列接收到前一个消息的偏移量再对后一个消息进行 处理的过程。 该消息处理方法降低了等待消息处理的时延, 提高了处理消息的速率。 0070 应当注意, 尽管在附图中以特定顺序描述了本公开中方法的各个步骤, 但是, 这并 非要求或者暗示必须按照该特定顺序来执行这些步骤, 或是必须执行全部所示的步骤才能 实现期望的结果。 附加的或备选的, 可以省略某些步骤, 将多个步骤合并为一个步骤执行, 以及/或者将一个步骤分解为多个步骤执行等。 0071 参考图2, 本示例实施方式中还提供了一种消息处理方法的交互流程图。 具体地, 在步骤S201中, 链表确定装置确定目。
38、标分区的偏移量状态链表, 其中, 偏移量状态链表包括 目标分区中各历史消息的偏移量以及各历史消息的处理状态; 在步骤S203中, 链表确定装 置将确定出的偏移量状态链表发送至消息处理装置; 在步骤S205中, 偏移量监控装置发送 针对偏移量状态链表的状态更新请求; 在步骤S207中, 消息处理装置响应步骤S205中的状 态更新请求; 在步骤S209中, 消息处理装置对偏移量状态链表进行针对处理状态的遍历操 作, 直至确定出处理状态为未处理, 以确定出目标偏移量; 在步骤S211中, 消息处理装置将 目标偏移量提交至消息队列。 其中, 目标偏移量为最后一个处理状态为已处理且未提交的 历史消息的偏。
39、移量。 0072 在本公开的示例性实施方式中, 偏移量监控装置可以先发送状态更新请求, 然后, 链表确定装置可以确定目标分区的偏移量状态链表, 接着, 链表确定装置发送偏移量状态 链表至消息处理装置, 随后, 消息处理装置响应状态更新请求, 并执行后续的步骤。 0073 根据本公开的一个实施例, 链表确定装置可以根据当前消息包含的分区标识确定 当前消息所属的分区, 并将当前消息所属的分区确定为目标分区。 其中, 当前消息可以是一 个消费者进程里一个线程正在处理的一个消息, 且该消息可以包含在一个分区中, 也就是 说, 该分区为当前消息所属的分区。 0074 在本公开的示例性实施方式中, 消息处。
40、理装置可以每隔第一预设时长响应针对偏 移量状态链表的状态更新请求, 也就是说, 偏移量监控装置可以每间隔固定时长向消息处 理装置发送针对偏移量状态链表的状态更新请求, 以使kafka消息队列每间隔固定时长接 收到一个分区中当前提交的消息的偏移量。 0075 例如, kafka系统中, 针对一个消费者进程里多个线程消费消息的场景。 一个消费 者进程消费一个分区中按消息存储至分区的先后顺序包含的消息, 分别是: 第一个消息、 第 二个消息、 第三个消息以及第四个消息。 该消费者进程可以包含第一线程、 第二线程、 第三 线程以及第四线程。 另外, 在该分区的偏移量状态链表中也按照消息存储至分区的先后。
41、顺 序添加了4个存储节点, 分别是: 第一个存储节点、 第二个存储节点、 第三个存储节点以及第 四个存储节点。 存储节点中存储了对应消息的处理状态和对应消息的偏移量。 0076 其中, 第一个存储节点中存储第一个消息的处理状态为已处理且未提交, 第一个 消息的偏移量为1; 第二个存储节点中存储第二个消息的处理状态为已处理且未提交, 第二 说明书 7/11 页 10 CN 111078422 A 10 个消息的偏移量为2; 第三个存储节点中存储第三个消息的处理状态为未提交, 第三个消息 的偏移量为3; 第四个存储节点中存储第四个消息的处理状态为已处理且未提交, 第四个消 息的偏移量为4。 007。
42、7 当kafka系统的消息队列需要获取针对该消费者进程消费消息所属分区中当前提 交消息的偏移量时, 首先, 偏移量监控装置可以发送针对偏移量状态链表的状态更新请求, 然后, 链表确定装置可以将该分区的偏移量状态链表发送至消息处理装置, 接着, 消息处理 装置响应状态更新请求, 从偏移量状态链表的第一个存储节点开始进行遍历操作, 遍历操 作的停止条件是消息的处理状态为未处理, 随后, 确定出目标偏移量并提交至消息队列。 0078 消息处理装置对偏移量状态链表进行遍历操作的具体步骤是: 0079 消息处理装置首先可以将每个存储节点中消息的处理状态与遍历操作的停止条 件进行比对, 第一个和第二个存储。
43、节点中消息的处理状态都为已处理且未提交, 接着, 比对 第三个存储节点中存储的第三个消息的处理状态, 结果是消息的处理状态相同, 则停止遍 历, 并确定出遍历过程中最后一个处理状态为已处理且未提交的历史消息的偏移量, 即第 二个存储节点中存储的第二个消息的偏移量, 随后, 将第二个存储节点中存储的第二个消 息的偏移量提交至kafka的消息队列。 0080 需要说明的是, 在该过程中, 因为偏移量状态链表出现了第一个和第二个存储节 点中消息的处理状态都为已处理且未提交, 可以认为第一个存储节点中第一个消息的偏移 量已提交, 也就是说, 第二个存储节点中存储的第二个消息的偏移量是目标偏移量, 是服。
44、务 器需要获取的一个分区中当前提交的消息的偏移量。 0081 在针对一个消费者进程里多个线程消费消息的场景中, 链表确定装置也可以先将 该分区的偏移量状态链表发送至消息处理装置, 然后, kafka系统的消息队列需要获取针对 该消费者进程消费消息所属分区中当前提交消息的偏移量时, 偏移量监控装置可以发送针 对偏移量状态链表的状态更新请求, 接着, 消息处理装置响应状态更新请求, 从偏移量状态 链表的第一个存储节点开始进行遍历操作, 遍历操作的停止条件是消息的处理状态为未处 理, 随后, 确定出目标偏移量并提交至消息队列。 0082 根据本公开的示例性实施例, 上述消息处理方法可以提交至消息队列。
45、的目标偏移 量是在遍历偏移量状态链表过程中确定出的最后一个处理状态为已处理且未提交的历史 消息的偏移量, 该过程提高了按照分区消息存储的顺序提交偏移量规则的准确性, 即减少 了在分布式订阅消息系统中处理消息的差错率。 0083 进一步的, 本示例实施方式中还提供了一种消息处理装置, 应用于分布式发布订 阅消息系统中, 参考图3, 根据本公开的示例性实施方式的消息处理装置300可以包括: 链表 获取模块302、 请求响应模块304以及偏移量确定模块306。 0084 其中, 链表获取模块302, 用于获取一目标分区的偏移量状态链表; 其中, 偏移量状 态链表包括目标分区中各历史消息的偏移量以及各。
46、历史消息的处理状态; 请求响应模块 304, 用于响应针对偏移量状态链表的状态更新请求; 偏移量确定模块306, 用于对偏移量状 态链表进行针对处理状态的遍历操作, 直至确定出处理状态为未处理, 以确定目标偏移量, 将目标偏移量提交至消息队列; 其中, 目标偏移量为在遍历偏移量状态链表过程中确定出 的最后一个处理状态为已处理且未提交的历史消息的偏移量。 0085 根据本公开的示例性实施例, 链表获取模块302还可以被配置为执行: 获取当前消 说明书 8/11 页 11 CN 111078422 A 11 息所属分区的偏移量状态链表; 若检测到偏移量状态链表中未存储当前消息的处理状态和 偏移量,。
47、 则在偏移量状态链表末端添加一存储节点, 以存储当前消息的处理状态和偏移量。 0086 根据本公开的示例性实施例, 请求响应模块304还可以被配置为执行: 每隔第一预 设时长响应针对偏移量状态链表的状态更新请求。 0087 根据本公开的示例性实施例, 信息更新指令为将当前消息的处理状态更新为已处 理的指令, 参考图4, 与消息处理装置300相比, 消息处理装置400还可以包括: 指令响应模块 401, 用于若当前消息已被处理, 则响应信息更新指令, 存储更新后的当前消息的处理状态。 0088 根据本公开的示例性实施例, 参考图5, 与消息处理装置300相比, 消息处理装置 500还可以包括: 。
48、节点处理模块502, 可以被配置为执行: 确定偏移量状态链表中处理状态为 已提交的存储节点; 将处理状态为已提交的存储节点丢弃。 0089 根据本公开的示例性实施例, 参考图6, 与消息处理装置300相比, 消息处理装置 600还可以包括: 偏移量提交模块601, 用于若消息队列响应未接收到目标偏移量, 则重新提 交目标偏移量。 0090 根据本公开的示例性实施例, 参考图7, 与消息处理装置300相比, 消息处理装置 700还可以包括: 信息发送模块702, 可以被配置为执行: 若每隔第二预设时长未接收到所述 状态更新请求, 则发送提醒信息。 0091 本示例实施方式中还提供了一种消息处理系。
49、统, 应用于分布式发布订阅消息系统 中, 参考图8, 根据本公开的示例性实施方式的消息处理系统800可以包括: 链表确定装置 801、 偏移量监控装置803以及消息处理装置300。 0092 其中, 链表确定装置801, 用于确定一目标分区的偏移量状态链表; 其中, 偏移量状 态链表包括目标分区中各历史消息的偏移量以及各历史消息的处理状态; 偏移量监控装置 803, 用于发送针对偏移量状态链表的状态更新请求; 消息处理装置300, 用于获取偏移量状 态链表, 响应状态更新请求, 对偏移量状态链表进行针对处理状态的遍历操作, 直至确定出 处理状态为未处理, 以确定目标偏移量, 将目标偏移量提交至。
50、消息队列; 其中, 目标偏移量 为在遍历偏移量状态链表过程中确定出的最后一个处理状态为已处理且未提交的历史消 息的偏移量。 0093 在本公开的示例性实施例中, 还提供了一种计算机可读存储介质, 其上存储有能 够实现本说明书上述方法的程序产品。 在一些可能的实施方式中, 本发明的各个方面还可 以实现为一种程序产品的形式, 其包括程序代码, 当程序产品在终端设备上运行时, 程序代 码用于使终端设备执行本说明书上述 “示例性方法” 部分中描述的根据本发明各种示例性 实施方式的步骤。 0094 在本公开的示例性实施例中, 还提供了一种能够实现上述方法的电子设备。 0095 所属技术领域的技术人员能够。
- 内容关键字: 消息 处理 方法 装置 可读 存储 介质 电子设备
农用无人机喷施效率现场检测装置.pdf
双线全自动冷轧管机生产线.pdf
汽车双色透光按钮.pdf
便于残渣分离的活性氧化锌制备装置.pdf
五金件CNC加工车床.pdf
拖拉机翻转连接架.pdf
物流箱投送物流架.pdf
对虾无节幼体流水养殖装置.pdf
烧结网管状过滤元件对接拼焊结构.pdf
车辆顶舱盖机构及车辆.pdf
节能型有机废气高效吸附脱附装置.pdf
新型储能电源.pdf
方便运输的可折叠储物罐.pdf
镜头易拆卸安装的玩具显微镜.pdf
预拌砂浆筛砂机.pdf
用于农药残留检测的样品破碎装置.pdf
方便维修的地坪研磨机齿轮箱.pdf
协作机器人侧装升降机构.pdf
TBM隧道施工注浆装置.pdf
便携式毫米波接力机.pdf
中频炉金属硅粉快速下料装置.pdf
即时传输及显示方法、装置、设备及存储介质.pdf
佩戴牢固的蓝牙耳机.pdf
基于3D激光雷达的移动机器人位姿跟踪方法及装置.pdf
基于模型协作的数据加权学习方法.pdf
蓝牙耳机信号传输测试装置.pdf
异常报价监控方法、系统、计算机及存储介质.pdf
混凝土布料任务动态控制方法及系统.pdf
转载溜槽及包括其的带式输送机系统.pdf
基于大数据的计算手术后目标血红蛋白的方法及系统.pdf
中频炉换炉开关.pdf
患者数据可视化管理系统及方法.pdf
用于固定真空开关管的喷秞设备.pdf
婴幼儿坐卧椅.pdf
基于多种群状态化的钢轨裂纹检测算法.pdf
基于SM9数字签名算法的分级签名方法和系统.pdf
智能看车的数据处理方法及系统.pdf
臭氧水混合装置.pdf
多功能吊机.pdf
新型大承重量装载机.pdf
用于拼装式宠物笼体的连接圈.pdf
身份证号码存储方法及装置.pdf
动画效果处理方法、系统及装置.pdf
物流系统用快速分拣传送装置.pdf
风景园林用新型诱杀虫灯.pdf
园林用LED杀虫灯.pdf
新能源污泥干化机.pdf
油漆生产中的废气收集装置.pdf
托盘自动收放线排线装置.pdf
稳定性高的医疗夹取装置.pdf
准确鉴别缺失突变纯、杂合线虫的三引物组及PCR鉴别方法.pdf
相关文档
更多![超薄芯片的晶背制备方法.pdf](/Images/s.gif)
![基于inCloud Manager的增加域的方法、系统及设备.pdf](/Images/s.gif)
![不锈钢抗拉型高锁螺母加工方法.pdf](/Images/s.gif)
![具有存量不足提醒的自助售货机及其提醒方法.pdf](/Images/s.gif)
![自助售货机的防撬防盗方法.pdf](/Images/s.gif)
![铝板材加工表面毛刺处理装置及其处理方法.pdf](/Images/s.gif)
![以矿棉为坯板的多功能地板及其制作方法.pdf](/Images/s.gif)
![文件传输方法、装置及存储介质.pdf](/Images/s.gif)
![经验路线生成方法和装置、存储介质和电子设备.pdf](/Images/s.gif)
![测量孔口倒角角度的测量装置.pdf](/Images/s.gif)
![应用于俄罗斯方块游戏的方块生成方法及装置.pdf](/Images/s.gif)
![车机桌面的服务系统.pdf](/Images/s.gif)
![用于柴油车尾气的NH.pdf](/Images/s.gif)
![显示装置及其触摸检测方法.pdf](/Images/s.gif)
![屏幕交互的方法、装置、设备和存储介质.pdf](/Images/s.gif)
![智能驾驶虚拟测试的加速方法及加速系统.pdf](/Images/s.gif)
![船舶轴系调整方法.pdf](/Images/s.gif)
![转子泵流量脉动系数的通用计算模型.pdf](/Images/s.gif)
![计算机承载底座.pdf](/Images/s.gif)
![微电网能量实时管理系统.pdf](/Images/s.gif)