键控事件队列的制作方法

文档序号:39854825发布日期:2024-11-01 19:35阅读:12来源:国知局
键控事件队列的制作方法

本申请是2021年9月27日提交的第17/485981号美国专利申请的延续,其公开内容通过引用合并于此。


背景技术:

1、客户通常会订购服务,如送餐、产品配送、拼车服务等,这些订单是通过订单平台生态系统完成的。每个订单通常由多个事件组成。例如,点餐送餐可能包括以下事件:顾客下单;厨房确认;司机到达;订单已准备好提货;多个订单因此产生大量的事件总数。不同的组件或微服务可能会对不同的事件做出反应并创建新的事件。例如,第一订单处理系统可以确认订单,而第二订单处理系统打印订单。

2、传统的订单平台生态系统包括通过消息代理(如kafka)进行通信的生产者和消费者。生产者将消息附加到队列中,消费者从队列中读取并确认消息。事件分发被委托给消息代理,以解耦事件生产者和消费者。来自不同订单的订单事件在数小时内分散并交错地插入到单个队列中,按顺序处理。这可能会导致队头阻塞问题,即消费者必须按每个分区顺序处理事件。如果一个事件失败,它会阻止同一订单中的后续事件,并且还会阻止按顺序处理的跟随失败事件后的其他订单的事件。为了防止阻塞,如果重试后仍失败,则通常会放弃失败的事件。

3、传统的订单平台生态系统也有固定的规模。因此,虽然消费者可能来来往往,但在不中断现有消费者或实时生产数据的订购的情况下,分区的数量无法更改以容纳更多或更少的消费者。


技术实现思路

1、本发明描述了一种改进的消息代理,称为键控事件队列(keq)。keq克服了现有代理的队头阻塞问题,同时也是一个基线高可用、可靠且可扩展的服务。keq具有横向扩展性,以适应未来的增长、提供低延迟消息传递和事务排队。特别是,keq通过明确的租约保证消息处理的独占性。例如,如果消费者者实例持有消息的有效租约,则keq保证即使存在故障,也不会有其他实例持有该消息的有效租约。

2、本发明的一个方面提供了一种管理请求并协调请求实现的方法,包括在一个或多个处理器处接收第一请求,该第一请求具有为实现该第一请求而发生的第一多个事件,由一个或多个处理器将该第一多个事件排列在多个独立队列中的第一队列,在一个或者多个处理器接收第二请求,由所述一个或多个处理器按顺序处理所述第一多个事件,并由所述另一个或多个处理器按顺序处理所述第二多个事件,其中所述第二多个事件的处理独立于所述第一多个事件处理的状态。

3、处理第一多个事件和处理第二多个事件可以包括向一个或多个消费者传递事件信息,确定一个或多个消费者完成事件的状态,以及基于确定的完成状态更新第一队列和第二队列。向一个或多个消费者传递事件信息可以包括双向流传输或者向一个或者多个消费者发送远程过程调用中的至少一种。消费者可以是,例如,外部实体的远程处理设备。

4、在一些实施方式中,将第一多个事件排队包括将第一多个事件写入分布式数据库中的第一队列。将第一多个事件写入分布式数据库中的第一队列可以包括在第一碎片中创建第一队列的标识符。第一碎片可以由一个或多个处理器的第一工作节点独占地访问。使第一多个事件排队还可以包括向与分布式数据库通信的分布式键值存储提供信号,该信号指示第一队列的标识符。一个或多个处理器可以扫描分布式数据库的更新。

5、根据一些实施方式,该方法还包括由一个或多个处理器选择一个引导器,用于将第一多个事件的处理和第二多个事件的处置分配给一个或多个处理器的选定处理单元。

6、本发明的另一个方面提供了一种用于管理请求和协调请求实现的系统。该系统包括一个或多个存储器以及与该一个或多个存储器通信的一个或多个处理器。所述一个或多个处理器可以被配置为接收第一请求,所述第一请求具有将要发生的第一多个事件以满足所述第一请求,将所述第一多个事件排列在多个独立队列中的第一队列,接收第二请求,第二请求具有将发生的第二多个事件以实现所述第二请求,将第二多个事件排列在多个单独队列中的第二队列,第二队列与第一队列分离,按顺序处理第一多个事件,并且按顺序处理所述第二多个事件,而与第一多个事件的处理状态无关。

7、该系统还可以包括用于与一个或多个消费者通信的接口,其中在处理第一多个事件和处理第二多个事件时,一个或多个处理器还被配置为通过该接口将事件信息传递给一个或多个消费者,确定一个或多个消费者完成事件的状态,并基于确定的完成状态更新第一队列和第二队列。在将事件信息传送到一个或多个消费者时,一个或多个处理器被配置用于与一个或多个消费者进行双向流传输。一个或多个消费者可以是,例如,外部实体的远程处理设备。

8、所述一个或多个处理器可包括写入模块,其中在将所述第一多个事件排队时,所述写入模块被配置为将所述第二多个事件写入分布式数据库中的所述第一队列。将第一多个事件写入分布式数据库中的第一队列可以包括在第一碎片中创建第一队列的标识符。所述一个或多个处理器可以包括一个或多个工作节点,其中在将所述第一多个事件排队时,所述工作节点被配置为向与所述分布式数据库通信的分布式键值存储提供信号,所述信号指示所述第一队列的标识符。所述一个或多个处理器可以进一步被配置为扫描分布式数据库的更新。

9、根据一些实施方式,所述一个或多个处理器被配置为选举一位领导者(leader),将对所述第一多个事件的处理和对所述第二多个事件的所述处理分配给所述一个或多个处理器的选定处理单元。

10、本发明的另一个方面提供了一种非暂态计算机可读介质,存储可由一个或多个处理器执行的指令,其用于执行管理请求并协调请求实现的方法。所述指令包括接收第一请求,所述第一请求具有要发生的第一多个事件以满足第一请求,将所述第一多个事件排列在多个独立队列中的第一队列中,接收第二请求,所述第二请求具有要发生的第二多个事件以实现第二请求、将所述第二多个事件排列在所述多个独立排队中的第二队列中,所述第二队列与所述第一队列分离,按顺序处理所述第一多个事件,并且按顺序处理第二多个事件,与所述第一多件的处理状态无关。



技术特征:

1.一种管理请求并协调所述请求的实现的方法,包括:

2.根据权利要求1所述的方法,其特征在于,处理所述第一多个事件和处理所述第二多个事件包括:

3.根据权利要求2所述的方法,其特征在于,向所述一个或多个消费者传达事件信息包括双向流传输或向所述一个或多个消费者发送远程过程调用中的至少一个。

4.根据权利要求2所述的方法,其特征在于,所述一个或多个消费者是外部实体的远程处理设备。

5.根据权利要求1所述的方法,其特征在于,将所述第一多个事件排队包括将所述第一多个事件写入分布式数据库中的所述第一队列。

6.根据权利要求5所述的方法,其特征在于,将所述第一多个事件写入所述分布式数据库中的所述第一队列包括在第一碎片中创建所述第一队列的标识符。

7.根据权利要求6所述的方法,其特征在于,所述第一碎片由所述一个或多个处理器的第一工作者独占访问。

8.根据权利要求5所述的方法,其特征在于,将所述第一多个事件排队还包括向与所述分布式数据库通信的分布式键值存储提供信号,所述信号指示所述第一队列的标识符。

9.根据权利要求5所述的方法,其特征在于,还包括由所述一个或多个处理器定期扫描所述分布式数据库的更新。

10.根据权利要求1所述的方法,其特征在于,进一步由一个或多个处理器选举一位领导者(leader),将所述第一多个事件的处理及所述第二多个事件的处理分配到所述一个或多个处理器的选定处理单元。

11.一种用于管理请求并协调所述请求的实现的系统,所述系统包括:

12.根据权利要求11所述的系统,其特征在于,还包括用于与一个或多个消费者通信的接口,其中在处理所述第一多个事件和处理所述第二多个事件时,所述一个或更多个处理器还被配置为:

13.根据权利要求12所述的系统,其特征在于,在向所述一个或多个消费者传送事件信息时,所述一种或多种处理器被配置用于与所述一个或多个消费者进行双向流传输。

14.根据权利要求12所述的系统,其特征在于,所述一个或多个消费者是外部实体的远程处理设备。

15.根据权利要求11所述的系统,其特征在于,所述一个或多个处理器包括写入模块,并且其中,在将所述第一多个事件排队时,所述写入模块被配置为将所述第二多个事件写入分布式数据库中的所述第一队列。

16.根据权利要求15所述的系统,其特征在于,将所述第一多个事件写入所述分布式数据库中的所述第一队列包括在第一碎片中创建所述第一队列的标识符。

17.根据权利要求16所述的系统,其特征在于,所述一个或多个处理器包括一个或多个工作节点,并且其中,在将所述第一多个事件排队时,所述工作节点被配置为向与所述分布式数据库通信的分布式键值存储提供信号,所述信号指示所述第一队列的标识符。

18.根据权利要求15所述的系统,其特征在于,所述一个或多个处理器还被配置为定期扫描所述分布式数据库的更新。

19.根据权利要求11所述的系统,其特征在于,所述一个或多个处理器进一步经配置为选举一位领导者(leader),将所述第一多个事件的处理和所述第二多个事件的处理分配到所述一个或多个处理器的选定处理单元。

20.一种非暂态计算机可读介质,存储可由一个或多个处理器执行的指令,用于执行管理请求和协调所述请求的实现的方法,包括:


技术总结
键控事件队列(KEQ)是一个多区域、动态缩放的消息代理,用于管理大量独立的严格排序的消息队列。在这方面,具有第一多个事件的第一请求可以被排队在第一队列中,而具有第二多个事件的第二请求被排队在第二队列中。第一队列和第二队列被独立处理,使得可能出现的关于第一多个事件相关的任何问题或失败都不会阻止第二多个事件被执行。

技术研发人员:亨宁·科尔霍姆·罗德,阿拉温德·维拉穆尔·斯里尼瓦桑,亚西尔·伊萨耶德,保罗·隆多,克里斯托弗·兰尼
受保护的技术使用者:城市存储系统有限责任公司
技术研发日:
技术公布日:2024/10/31
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1