[英]How performance can be tested in Kafka and Flink environment?
如何使用 kafka 作為輸入源對 Flink 進行性能測試。 另外,建議是否有任何性能測試工具可用於這種情況。
Flink 包括吞吐量(numRecordsInPerSecond 和 numRecordsOutPerSecond)和延遲的指標。
如果您想更仔細地測量端到端的延遲,您可以在接收器(或其他終端節點)中添加自定義指標,將事件中的時間戳與當前時間進行比較。 這看起來像這樣:
public class LatencyMeasuringSink<T> extends RichSinkFunction<T> {
private transient DescriptiveStatisticsHistogram eventTimeLag;
private static final int EVENT_TIME_LAG_WINDOW_SIZE = 10_000;
@Override
public void open(Configuration parameters) throws Exception {
super.open(parameters);
eventTimeLag = getRuntimeContext().getMetricGroup().histogram("eventTimeLag",
new DescriptiveStatisticsHistogram(EVENT_TIME_LAG_WINDOW_SIZE));
}
@Override
public void invoke(T dataPoint, Context context) throws Exception {
eventTimeLag.update(System.currentTimeMillis() - dataPoint.getTimeStampMs());
}
}
您可能希望將 Kafka 生產者配置為將LogAppendTime
時間戳放在您的事件中,並將其用作比較的基礎。 當然,這假設所涉及的不同機器中的時鍾同步得足夠好,以使這種測量有意義——或者您可以在單台機器上運行測試。
FLIP-83:Flink 端到端性能測試框架也可能引起關注。 這是正在進行中的工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.