如何判断一个运动流是否没有被处理



在处理AWS kineesis流时,如何判断消费者是否不再处理该流?在kineesis中是否有一个指标可以用来警示?

有一个iteratoragemillisseconds的度量,然而,这个度量只在处理流时写入。因此,如果消费者关机,流正在备份消息,我们将知道只有当我们恢复处理时才会发生这种情况。

您可以使用GetRecords.Bytes来确定流是否正在被读取。

如果您只有一个消费者,您可以使用度量数学将其与PutRecords.Bytes和/或PutRecord.Bytes进行比较。如果有一个以上的消费者,你需要将收益除以消费者的数量,如果你有一个可变数量的消费者,这是行不通的。

您还可以在流上启用异常检测。我没有这样做过,所以不能告诉你它的效果如何。

但是我更喜欢的方法(并且已经成功地使用过多次)是让您的消费者编写一个自定义度量,例如它所处理的记录的数量。然后,您可以对未报告该度量的消费者设置警报。

最新更新