2017-07-31 92 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'消息。