【发布时间】:2021-08-20 08:13:38
【问题描述】:
我使用自己的 ProducerFactory bean 设置了 Kakfa 生产者,它使用 AWS Glue Schema Registry 注册 AVRO 模式,我想将所有属性移动到 YML 文件中,但我不知道如何在 yml 中声明 AWSSchemaRegistryConstants 属性文件,有什么想法吗?代码如下:
@Configuration
@EnableKafka
class KafkaProducerConfig {
@Bean
fun producerConfigs(): Map<String, Any> {
val props: MutableMap<String, Any> = HashMap()
props[ProducerConfig.BOOTSTRAP_SERVERS_CONFIG] = "localhost:9092"
props[ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG] = IntegerSerializer::class.java
props[ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG] = AWSKafkaAvroSerializer::class.java
props[AWSSchemaRegistryConstants.AWS_REGION] = "ap-southeast-2"
props[AWSSchemaRegistryConstants.SCHEMA_AUTO_REGISTRATION_SETTING] = "true"
props[AWSSchemaRegistryConstants.SCHEMA_NAME] = "ac-schema"
props[AWSSchemaRegistryConstants.REGISTRY_NAME] = "poc-registry"
return props
}
@Bean
fun producerFactory(): ProducerFactory<Int, AcCk> {
return DefaultKafkaProducerFactory(producerConfigs())
}
@Bean
fun kafkaTemplate(): KafkaTemplate<Int, AcCk> {
return KafkaTemplate(producerFactory())
}
}
YML 文件:
spring:
kafka:
producer:
bootstrap-servers: localhost:9092
key:
serializer: org.apache.kafka.common.serialization.IntegerSerializer
value:
serializer: com.amazonaws.services.schemaregistry.serializers.avro.AWSKafkaAvroSerializer
AWSSchemaRegistryConstants ??????
【问题讨论】:
标签: spring-boot apache-kafka spring-kafka kafka-producer-api