34.11. Kafka 标头传播


使用 Kafka 中的消息时,标头将自动传播到 camel 交换标头。生成由同一行为 - 特定交换的 camel 标头支持的流将被传播到 kafka 消息标头。

由于 kafka 标头只允许 byte[] 值,以便 camel Exchange 标头被序列化为 bytes[],否则将跳过标头。支持以下标头值类型:string ,Integer,Long, Double, 布尔值,byte[]. 注: 所有标头生成的 kafka camel 的交换默认都会包括值 byte[]。若要覆盖默认功能,uri 参数可以设置: headerDeserializer 用于 from 路由,headerSerializer 用于 to 路由。Example:

from("kafka:my_topic?headerDeserializer=#myDeserializer")
...
.to("kafka:my_topic?headerSerializer=#mySerializer")

默认情况下,所有标头都由 KafkaHeaderFilterStrategy 进行过滤。策略过滤掉以 Camelorg.apache.camel 前缀开头的标头。默认的策略可以通过在 tofrom 路由中使用 headerFilterStrategy uri 参数进行覆盖:

from("kafka:my_topic?headerFilterStrategy=#myStrategy")
...
.to("kafka:my_topic?headerFilterStrategy=#myStrategy")

myStrategy 对象应该是 HeaderFilterStrategy 的子类,必须手动放置在 Camel registry 中,也可以作为 bean 在 Spring/Blueprint 中进行注册,因为它为 CamelContext 感知。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.