簡體   English   中英

如何在Kafka和Flink環境下測試性能?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM