我有一个消息传递用例问题。
截至目前,我们在 AWS SQS 中有一个队列,例如origQueue,并且该队列上有开箱即用的基于 lambda 的消息消费。
现在,为了满足基于优先级(高、中、低)的消息消耗的一个特定功能(基于消息中设置的“优先级”数字),我正在考虑拥有一组 3 个队列,其中每个队列是属于不同的优先级。在最高优先级队列上,开箱即用的基于 lambda 的消息消费将继续发生。批处理会以 5 分钟的间隔持续运行。每个都提升中低优先级队列中的一些消息。目前还没有想到这个批处理的逻辑,但它可以是任何东西,比如拾取 10 条中优先级消息和 5 条低优先级消息,它们的老化时间都超过 1 小时,并将它们提升到高优先级队列,以便它们可以通过上述开箱即用的基于 lambda 的消息消耗来消耗。
所以在这样做之前,我只是想收集其他潜在的想法。是否有任何开箱即用的 AWS 功能或任何模式来解决这种基于优先级的消息消费问题?
聚苯乙烯
我想出的另一种(未选择的)方法是考虑优先级将项目“插入”队列中,这将使队列始终按优先级排序。但这种“运行时动态插入”似乎并不可行,因为传入消息流始终处于开启状态。