在处理AWS kineesis流时,如何判断消费者是否不再处理该流?在kineesis中是否有一个指标可以用来警示?
有一个iteratoragemillisseconds的度量,然而,这个度量只在处理流时写入。因此,如果消费者关机,流正在备份消息,我们将知道只有当我们恢复处理时才会发生这种情况。
您可以使用GetRecords.Bytes
来确定流是否正在被读取。
如果您只有一个消费者,您可以使用度量数学将其与PutRecords.Bytes
和/或PutRecord.Bytes
进行比较。如果有一个以上的消费者,你需要将收益除以消费者的数量,如果你有一个可变数量的消费者,这是行不通的。
您还可以在流上启用异常检测。我没有这样做过,所以不能告诉你它的效果如何。
但是我更喜欢的方法(并且已经成功地使用过多次)是让您的消费者编写一个自定义度量,例如它所处理的记录的数量。然后,您可以对未报告该度量的消费者设置警报。