我如何知道阅读器已经处理了Kinesis流中数据的百分比?我知道每个阅读器都有一个每个分片的检查点序列号,我也可以从描述流中获取每个分片的StartingSequence Number,但是,我不知道阅读器当前在我的数据中的进度(我不知道分片的最新序列号)。
我想为每个碎片获取一个最新的迭代器,并获取最后一条记录的序列号,然而,如果在获得最新迭代器后没有新数据,那么这似乎不起作用。
有什么想法或工具可以做到这一点吗?
谢谢!
如果您使用KCL,您可以通过将cloudwatch内置的Kinesis指标中的IncomingRecords与KCL发布的自定义指标RecordsProcessed进行比较来实现这一点。
然后选择一个时间范围和间隔,例如1天。
然后会得到以下类型的图:
如您所见,添加的记录比处理的记录多得多。通过查看每个点的值,您将确切地知道您的处理器是否落后。
我建议您在应用程序中实施一个或多个自定义指标来跟踪这一点。
例如,您可以在Kinesis消息中附加消息发送时间,并在处理消息时,将时差记录为AWS CloudWatch自定义指标。这将表明您的消费者离流的前端有多近。
您还可以记录(在推送应用程序上)推送的消息数和在Kinesis消费者上接收的消息数。如果在CloudWatch上的图表中进行比较,您可以看到这些曲线大致彼此跟随,表明消费者在跟上工作量方面做得很好。
您还可以尝试监视您的Kinesis消费者,查看其空闲等待记录的频率(即,Kinesis没有返回结果,表明它位于流的前端,并且所有记录都已处理)
另请注意,由于Kinesis消息会在24小时后过期(因此消息总数会不断滚动),因此无法跟踪流中处理的“百分比”。也没有直接(API)函数来计算流中的消息数量(除非您如上所述记录了这一点)。
我在磁盘上有一个(文本)文件,我需要将其读入一个接受Reader对象的库。 在读取此文件时,我想对数据执行正则表达式字符串替换。 我目前的解决方案是将整个文件作为一个String读取到内存中,进行String替换,然后为该String创建一个StringReader,并将其作为Reader传回库。 但是,对于大型文件(尤其是在多线程中运行的文件),性能是一个问题。 我想做的是让它一次读取文件中的每
您可以使用XSLFShape类的getShapeName()方法获取演示文稿中使用的形状数量。 以下是从演示文稿中读取形状的程序 - import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.p
我有以下代码: 我只想模拟这些行,并在,因为我将有多个测试用例,具体取决于行(文件为空,行为空,我只得到一行,我得到几行,等等)。 注意:我使用库访问FTP服务器上的文件,因此方法将作为返回类型,而具有。 我正在使用junit 4.12和mockito 3.1.0 提前感谢!
在问题[1]中,我了解到如果您想在Android下使用NFC标签,则不必采用NDEF格式。我想在Win 8.1 in. Net下执行此操作。我的情况是这样的: 我有一个RFID卡Mifare Classic 1K,其中存储了一个ID。(由制造商记录)该ID由我们的考勤系统通过通常的RFID读取器(例如Gigatek的PROMAG MFR120)读取。我们不在卡上写任何东西,我们只需要读取ID。但是
RSS 阅读器用于读取 RSS feed! RSS 阅读器可供许多不同的设备和操作系统使用。 RSS 阅读器 有很多不同的 RSS 阅读器。某些以 web services 的形式来工作,而某些则运行于 windows (或 Mac、PDA 或 UNIX)。 这是一些我尝试过并钟爱的阅读器: 这是一些我尝试过并钟爱的阅读器: RSS 阅读器 有很多不同的 RSS 阅读器。某些以 web servi
Android PDF Viewer 是Android平台下的PDF阅读器。