我们可以通过同一卡夫卡主题传递不同类型的消息吗?

时间:2019-07-25 12:02:17

标签: apache-kafka apache-spark-sql spark-streaming databricks

我遇到从卡夫卡生产者要流式传输消息的情况。

如果我不想针对不同的消息类型使用不同的主题,那么如何在火花结构化的流媒体消费者方面处理它呢?

i.e. only one topic I want to use for different type of messages ...say Student record , Customer record....etc.
How to identify which message is been received from Kafka topic?

Please let me know how to handle this scenario at kafka consumer side?

2 个答案:

答案 0 :(得分:1)

是的,您可以通过在生成消息时在消息本身上添加“某些属性”来表示逻辑主题或操作,并在Spark方面进行区分-例如结构化流式KAFKA集成。例如。检查邮件内容的“某些属性”并进行相应处理。

分区当然总是用于订购。

答案 1 :(得分:1)

Kafka主题固有地没有“数据类型”。它都是字节,因此可以将完全独立的对象序列化到同一主题中,但是使用者必须添加逻辑以知道将所有可能的类型添加到该主题中。

话虽这么说,结构化流是基于具有结构化数据的构想的,所以如果您在同一主题中具有完全不同的类型而没有至少首先基于某个内部属性执行过滤器,则可能无法工作在所有类型中始终存在。