1
我有一個不同類型文本記錄的流「myStream」,比如說「A」,「B」,「C」等......每種類型的記錄需要不同的處理。我想爲每種類型的「myStream」創建多個tap:tapA,tapB,tapC等。但似乎tap沒有任何過濾功能。這是真的還是我錯過了什麼?有沒有更好的方法來完成這一點?帶過濾器的Spring-xd水龍頭?
我有一個不同類型文本記錄的流「myStream」,比如說「A」,「B」,「C」等......每種類型的記錄需要不同的處理。我想爲每種類型的「myStream」創建多個tap:tapA,tapB,tapC等。但似乎tap沒有任何過濾功能。這是真的還是我錯過了什麼?有沒有更好的方法來完成這一點?帶過濾器的Spring-xd水龍頭?
您可以對抽頭流進行過濾。您可以將點擊看作爲具有源通道(tap通道)集的常規流,並且該源通道可以與多個處理器和單一接收器組合。
見這個例子:
xd:>stream create test --definition "http | log" --deploy
xd:>http post --data test
xd:>stream create tap-test --definition "tap:stream:test.http > filter --expression=payload.contains('a') | log" --deploy
xd:>http post --data test
xd:>http post --data apple
,並在容器日誌,你會看到這樣的內容:
2015-05-19 11:48:36,276 1.2.0.SNAP INFO pool-16-thread-11 sink.test - test
2015-05-19 11:48:41,445 1.2.0.SNAP INFO pool-16-thread-17 sink.test - apple
2015-05-19 11:48:41,445 1.2.0.SNAP INFO xd.localbus-2 sink.tap-test - apple
注意有效載荷「蘋果」出來的規律和水龍頭流。
謝謝!現在它適用於我。我的困惑是,我用「tap:stream:test | filter ...」代替「tap:stream:test> filter ...」 –
哦。任何時候你使用命名通道(tap:,queue:etc.),那麼你就可以使用這個尖括號'>'符號。 –
有趣的是,我沒有得到相同的結果 2016-05-02T14:46:55 + 0300 1.3.1.RELEASE INFO pool-81-thread-12 sink.test - test 2016-05-02T14: 47:02 + 0300 1.3.1.RELEASE INFO pool-81-thread-4 sink.test - apple ' – nurgasemetey