66.6. 消息标头
Kafka 组件支持 13 个消息标头,如下所列:
| Name | 描述 | 默认值 | 类型 |
|---|---|---|---|
| kafka.PARTITION_KEY (producer) Constant: PARTITION_KEY | 明确指定分区。 | 整数 | |
| kafka.PARTITION (consumer) Constant: PARTITION | 保存邮件的分区。 | 整数 | |
| kafka.KEY (common) Constant: KEY | 必需 Producer :消息的密钥,以确保所有相关消息在同一分区中。consumer :消息的密钥(如果已配置)。 | 对象 | |
| kafka.TOPIC (consumer) Constant: TOPIC | 消息源自的主题。 | 字符串 | |
| kafka.OVERRIDE_TOPIC (producer) Constant: OVERRIDE_TOPIC | 发送消息的主题(override 和具有优先权),且不会保留标头。 | 字符串 | |
| kafka.OFFSET (consumer) Constant: OFFSET | 消息的偏移。 | Long | |
| kafka.HEADERS (consumer) Constant: HEADERS | 记录标头。 | Headers | |
| Kafka.LAST_RECORD_BEFORE_COMMIT (consumer) Constant: LAST_RECORD_BEFORE_COMMIT | 提交前是否是最后一个记录(仅在 autoCommitEnable endpoint 参数为 false 时才可用)。 | 布尔值 | |
| kafka.LAST_POLL_RECORD (consumer) Constant: LAST_POLL_RECORD | 指明当前轮询请求中的最后记录(仅在 autoCommitEnable endpoint 参数为 false 或 allowManualCommit 为 true 时才可用)。 | 布尔值 | |
| kafka.TIMESTAMP (consumer) Constant: TIMESTAMP | 消息的时间戳。 | Long | |
| kafka.OVERRIDE_TIMESTAMP (producer) Constant: OVERRIDE_TIMESTAMP | ProducerRecord 也关联有时间戳。如果用户提供时间戳,则生成者会将记录与提供的时间戳进行时间戳,且不会保留标头。 | Long | |
| kafka.RECORD_META (producer) Constant: KAFKA_RECORD_META | 元数据(仅在 recordMetadata endpoint 参数为 true 时配置)。 | list | |
| CamelKafkaManualCommit (consumer) Constant: MANUAL_COMMIT | 在使用 Kafka 使用者时,可用于强制手动偏移提交。 | KafkaManualCommit |
如果要向动态主题发送消息,则使用 KafkaConstants.OVERRIDE_TOPIC,因为它用作没有随消息发送的一个一次性标头,并在生成者中实际删除。