1


Kafka Spring Integration: Headers not coming for kafka consumer - これは何のヘッダがカフカSpring Cloud Stream Kafkaは埋め込みヘッダをサポートしていますか?このトピックによると

しかしdocumentationのためにサポートしていないですが 言う:

spring.cloud.stream.kafka.binder.headers
リストバインダーによって転送されるカスタムヘッダーの

デフォルト:空。

私はそれは春・クラウド・ストリーム・バインダー・カフカでの作業を取得することはできません。1.2.0.RELEASE

はLOGを送信:

LOGを受け
MESSAGE (e23885fd-ffd9-42dc-ebe3-5a78467fee1f) SENT : 
GenericMessage [payload=..., 
headers={ 
    content-type=application/json, 
    correlationId=51dd90b1-76e6-4b8d-b667-da25f214f383, 
    id=e23885fd-ffd9-42dc-ebe3-5a78467fee1f, 
    contentType=application/json, 
    timestamp=1497535771673 
}] 

MESSAGE (448175f5-2b21-9a44-26b9-85f093b33f6b) RECEIVED BY HANDLER 1: 
GenericMessage [payload=..., 
headers={ 
    kafka_offset=36, 
    id=448175f5-2b21-9a44-26b9-85f093b33f6b, 
    kafka_receivedPartitionId=0, 
    contentType=application/json;charset=UTF-8, 
    kafka_receivedTopic=new_patient, timestamp=1497535771715 
}] 

MESSAGE (448175f5-2b21-9a44-26b9-85f093b33f6b) RECEIVED BY HANDLER 2 : 
GenericMessage [payload=..., 
headers={ 
    kafka_offset=36, 
    id=448175f5-2b21-9a44-26b9-85f093b33f6b, 
    kafka_receivedPartitionId=0, 
    contentType=application/json;charset=UTF-8, 
    kafka_receivedTopic=new_patient, timestamp=1497535771715 
}] 

同じメッセージが表示されます。id d受信側でcorrelationIdを取得します。

application.properties:

spring.cloud.stream.kafka.binder.headers=correlationId 
spring.cloud.stream.bindings.newTest.destination=new_test 
spring.cloud.stream.bindings.newTestCreated.destination=new_test 
spring.cloud.stream.default.consumer.headerMode=embeddedHeaders 
spring.cloud.stream.default.producer.headerMode=embeddedHeaders 

メッセージ送信:

@Publisher(channel = "testChannel") 
public Object newTest(Object param) { 
    ... 
    return myObject; 
} 
+0

あなたは何をしようとしているのかの例を挙げることができますか? –

+0

@MariusBogoeviciお願いします更新後の投稿を参照してください... – Savash

答えて

2

はい、それがない:http://docs.spring.io/spring-cloud-stream/docs/Chelsea.SR2/reference/htmlsingle/index.html#_consumer_properties

headerMode

生に設定すると、ヘッダの解析を無効入力にオン。メッセージヘッダーをネイティブにサポートしていないヘッダー埋め込みが必要なメッセージングミドルウェアに対してのみ有効です。着信データがSpring Cloud Streamアプリケーションの外部から送信される場合に役立ちます。

デフォルト:embeddedHeaders

しかし、それはすでに春のクラウドストリームの物語である、カフカ自体春ません。

+0

headerMode:rawを使用して正常に動作させる必要がありますか? – Savash

+1

いいえ、デフォルトではヘッダーのサブセットのみが転送されます - https://github.com/spring-cloud/spring-cloud-stream/blob/master/spring-cloud-stream/src/main/java/orgを参照してください。 /springframework/cloud/stream/binder/BinderHeaders.java#L39。独自のヘッダーを転送する場合は、Artemが提供しているプロパティに名前を追加できます。 –

+0

あなたの返信ありがとう!しかし、これは実際には問題です。ドキュメントに従って動作するはずですが、そうではありません。ピーズ、アップデートを見て、私はログと設定を追加しました。 – Savash

関連する問題