我正在Kafka,Spark流,并试图实现和解。
producer message:大约有5个字段用“,”分隔,其中一个是uuid(unique identifier),例如:a,b,producer,uuid\u 1,e
使用者消息:大约有5个字段用“,”分隔,其中一个是uuid ex:a,b,consumer,uuid\u 1,e
这里uuid是生产者和消费者之间的关系,它是动态的
在kafka中,我需要某种过滤,通过这种过滤,所有特定的生产者/消费者的消息都会出现在一个特定的主题或分区中。
我确实有如下想法,但无法实施:
根据我的研究动态分区是不允许的,这是正确的吗?
因此,我看到的唯一选择是,基于收到的uuid创建一个动态主题,然后将每个uuid特定的消息路由到该主题,一旦消息被使用,该主题就需要被删除。这是正确的方法吗?如果是,如何实现?
1条答案
按热度按时间vu8f3i0k1#
根据我的研究动态分区是不允许的,这是正确的吗?
分区可以增加,但不能减少。
基于接收到的uuid创建动态主题
不要这样做,它违反了主题的语义,主题意味着同类的消息。
只需将'uuid_1'设置到消息'key'字段中,因为kafka根据'key'的哈希值将相同的'key'消息发送到相同的'partition'。