apache-kafka - 如何通过 YAML 中的 Spring Cloud Stream 提供 Kafka Streams 属性?
问题描述
我想搬到spring.kafka.streams.*
下面spring.cloud.stream
——这可能吗?我想过streams-properties
类似于consumer-properties
or producer-properties
,但它不起作用。
spring:
cloud:
config:
override-system-properties: false
server:
health:
enabled: false
stream:
bindings:
input_technischerplatz:
destination: technischerplatz
output_technischerplatz:
destination: technischerplatz
default:
group: '${spring.application.name}'
consumer:
max-attempts: 5
kafka:
binder:
auto-add-partitions: false
auto-create-topics: false
brokers: '${values.spring.kafka.bootstrap-servers}'
configuration:
header.mode: headers
consumer-properties:
allow.auto.create.topics: false
auto.offset.reset: '${values.spring.kafka.consumer.auto-offset-reset}'
enable.auto.commit: false
isolation.level: read_committed
max.poll.interval.ms: 300000
max.poll.records: 100
session.timeout.ms: 300000
header-mapper-bean-name: defaultKafkaHeaderMapper
producer-properties:
acks: all
key.serializer: org.apache.kafka.common.serialization.StringSerializer
max.in.flight.requests.per.connection: 1
max.block.ms: '${values.spring.kafka.producer.max-block-ms}'
retries: 10
required-acks: -1
kafka:
streams:
applicationId: '${spring.application.name}_streams'
properties:
default.key.serde: org.apache.kafka.common.serialization.Serdes$StringSerde
default.timestamp.extractor: org.apache.kafka.streams.processor.LogAndSkipOnInvalidTimestamp
state.dir: '${values.spring.kafka.streams.properties.state.dir}'
解决方案
spring.cloud.stream
您可以通过以下方式绑定流属性:
spring.cloud.stream.kafka.streams.binder.applicationId: my-application-id
spring.cloud.stream.kafka.streams.binder.configuration:
default.key.serde: org.apache.kafka.common.serialization.Serdes$StringSerde
default.value.serde: org.apache.kafka.common.serialization.Serdes$StringSerde
更多详细信息,您可以参考文档:
推荐阅读
- openlayers - Graticule 的 targetSize 属性是否意味着可动态更新?
- python - Python,CX 冻结错误,当我尝试启动我的 exe 时
- javascript - 来自堆栈导航的隐藏标题转到状态栏
- python - 在 Python 中解析二级 JSON 对象
- controller - 无法在 127.0.0.1:6633 连接遥控器
- python - How to plot/scatter geo coordinates in python pandas
- python - Python 具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all()
- android - 即使在 android 应用程序被杀死后也发送通知
- php - 在 PHP 中打印多维数组的特定部分
- sql - PostgreSQL 从 csv 插入多行