LoginSignup
1
0

More than 5 years have passed since last update.

NiFi Network Listening Processors 仕組み

Posted at

Background

ListenSyslog, ListenTCP, and ListenUDPの仕組み

概要図

image.png

一つ Listening 系のprocessorが実行し始めると、独立な thread は起動され、 incoming network connectionsをListenする.
あるconnectionが入ったら、もう一つthreadが立ち上げられ、Connectionからデータを読み込む。我々はこれを channel readerと呼ぶ (最初の original thread は引き続き additional connectionsを監視).

Channel readerはなる早で connectionからデータを読み込む, そして受け取ったすべてのMessageをblocking queueに保存。
該当Blocking queueはProcessorに共有される。
毎回processor実行時、該当 queueから一つあるいは複数 messagesを取得し、 flow fileに書き込む。

ここで、2つ競合Activityが発生:

  • 1)Data ProducerはSocket Bufferにデータを書き込む。同時に、Channel Readerは該当Socket Bufferのデータを読み込む。 もし、外部Data ProducerからSocket Bufferへの書き込む速度がNiFiの読み込み速度を越えたら、incoming data が紛失の可能性がある

  • 2)channel readerはデータを message queueに保存し、processorが同時に messages queueからMessageを取得. もしmessages保存の速度がProcessorの読み込み速度より速い場合、Message Queueはだんだん最大キャパシティに達する、これで channel reader がブロック状態になり、 queueの中のSpaceを待つ. channel reader が blocking状態ですと、 connectionから読まないで、 socket bufferはだんだんいっぱいになり、データが紛失の可能性がある

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0