2017-07-31 57 views
1

我正在開發kafka,spark-streaming並試圖實現和解。kafka過濾/動態主題創建

生產者消息:一些5個字段分隔 '' 和其中的一個將是UUID(唯一標識符) 例如:A,B,製片人,UUID_1,E

消費者消息:一些5個字段分隔「」和其中的一個將是UUID 例如:A,B,消費者,UUID_1,E

這裏UUID是生產者和消費者之間的關係,它是動態

在卡夫卡,我需要某種過濾方式,通過這種方式,所有特定的生產者/消費者消息都將位於一個特定的主題或分區中。

我下面有一個想法,但無法實現它:

按我的研究動態分區是不允許的,這是正確的?

因此,我看到的唯一選擇是,根據收到的UUID創建一個動態主題,然後將每個UUID特定消息路由到該主題,一旦消息消耗完畢,該主題需要刪除。這是正確的方法,如果是的話,如何實現這一目標?

+1

有一個標誌可以動態創建一個主題'auto.create.topics.enable = true'。希望這可以幫助 –

回答

0

根據我的研究動態分區是不允許的,這是正確的嗎?

分區可以增加,但不能減少。

創建基於接收到的UUID

Dont't動態主題做到這一點,它違反了主題語義,主題是指同一類的消息。
只需在'Key'字段中設置'UUID_1',因爲Kafka根據'Key'的散列向同一個'分區'發送相同的'Key'消息。