2016-10-11 33 views
0

我對攝入從輸入流數據的要求,讓「企業」用戶創建和編輯規則。規則必須是商業友好的,不能有任何開發週期。下面是我在想什麼的例子:實時規則編輯和KafkaStreams

"if weatherStation.id == 100 and weatherStation.temp < 33 and detectedPctWipersOn = 90% 
then return true 
else return false" 

天氣站和連接的車輛流數據被誤吞,我需要應用該規則,但如果規則改變的說法,detectedPctWipersOn = 75%,該規則必須實時應用,無需重新部署或重新啓動。它需要數據驅動。

Siddhi CEP(WSO2 CEP)似乎只支持「部署」規則。 有沒有其他CEP產品可以滿足我的需求,特別是如果他們和KafkaStreams一起玩的很好?

如果我不得不滾我-自己,有沒有建議對這個問題進行「流」的設計模式?

+0

是你的問題有關卡夫卡流?我不確定,如果你使用正確的標籤。 –

+0

我刪除了Siddhi標籤。是的,我正在尋找一個集成了很好Kafka Streams的商業友好規則編輯器。我提到Siddhi只是爲了表明它不符合我對這個問題的要求。 – Jason

+0

我真的想知道如果卡夫卡溪流標籤是打算:)從我的問題不清楚。因爲我不認識Siddhi,所以我不確定答案。但是,從Kafka Streams的角度來看,我沒有看到任何問題,爲什麼你不能用新規則更新應用程序。您只需要記住,如果開始擴展,如果難以以同步的方式更新所有實例。 –

回答

0

對於這樣的要求,而不是使用西提引擎,嘗試使用CEP產品。它帶有一個query templating facility,您可以在其中獲得一些預定義的模板,只顯示用戶要配置的參數。例如:WeatherStationTemperature。一旦參數更改,內部CEP將重新部署查詢,並且更改將立即生效。

這對你的例子中的過濾器這樣的無狀態查詢非常有效,但是如果你使用windows,模式等,狀態將會丟失。所以你可能需要使用數據庫支持的表/窗口來正確地實現這些用例。