![](/img/trans.png)
[英]java.lang.IllegalArgumentException: Topic cannot be null. at org.apache.kafka.clients.producer.ProducerRecord.<init>(ProducerRecord.java:71)
[英]Apache Camel - Kafka producer: setting topic name dynamically
我有一個基於駱駝的應用程序(帶有 XML 描述的路由的 spring)。 我希望它能夠將輸入消息路由到未知數量的 kafka 主題(基於文件名模式和主題名之間的可配置匹配),因此我無法在 xml 文件中預先為每個模式創建一個生產者。
理想情況下,我們將能夠在消息 header 中設置主題,例如分區 id...
有人有建議嗎?
終於有可能了。 我指的是 kafka 消費者的錯誤來源。 在最近的版本中,它的行為與我希望的完全一樣。
topic = exchange.getIn().getHeader(KafkaConstants.TOPIC, topic, String.class);
因此,必須在消息中設置 KafkaCONstants.TOPIC 標頭才能動態選擇主題。
您可以在標題中使用 KafkaConstants.TOPIC 設置主題並讀取 kafka 組件中的值,例如 kafka:${headers[kafka.TOPIC]}(這是在 java dsl 中)來檢索主題並使用 toD uri 來構造 kafka uri動態的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.