AWS Kafka Cluster'ında Java Producer "Error starting ApplicationContext" hatası

BeecoV

Megapat
Katılım
18 Mayıs 2015
Mesajlar
207
Çözümler
2
Merhabalar,

Localde kafka ve zookeeper kurmak yerine (direkt veya docker ile) amazon web servislerinin sunmuş olduğu Amazon Managed Streaming for Apache Kafka (Amazon MSK) kullanmak istiyorum. Bir cluster oluşturdum fakat Java Spring Boot projemde producer olarak bağlanamıyorum. Java kodlarım aşağıdadır.

KafkaProducerConfig classım:
Java:
@Configuration
@EnableKafka
public class KafkaProducerConfig {

    @Value("${spring.kafka.bootstrap-servers}")
    private String kafkaAddress;

    @Bean
    public ProducerFactory<String, String> producerFactory() {

        Map<String, Object> configProps = new HashMap<>();
        configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaAddress);
        configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class);
        return new DefaultKafkaProducerFactory<>(configProps);

    }

    @Bean
    public KafkaTemplate<String, String> kafkaTemplate() {
        return new KafkaTemplate<>(producerFactory());
    }
}

ProducerService classım:
Java:
@Service
public class ProducerService {

    private final KafkaTemplate<String, String> kafkaTemplate;

    @Value("${spring.kafka.producer.topic}")
    private String topicName;

    public ProducerService(KafkaTemplate<String, String> kafkaTemplate) {
        this.kafkaTemplate = kafkaTemplate;
    }

    public void sendMessage(String msg) {
        kafkaTemplate.send(topicName, msg);
    }
}

application.properties dosyası:
Java:
server.port=8081
spring.application.name=producer-app
spring.kafka.bootstrap-servers=XXXXXXXX.eu-central-1.amazonaws.com:9098
spring.kafka.producer.topic=DemoTopic

Projeyi ayağa kaldırdığımda aldığım hata:

Kod:
2022-09-16T19:52:58.368+03:00  INFO 16908 --- [  restartedMain] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-09-16T19:52:58.388+03:00 ERROR 16908 --- [  restartedMain] o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalStateException: Failed to execute ApplicationRunner
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:782) ~[spring-boot-3.0.0-20220916.063540-789.jar:3.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:769) ~[spring-boot-3.0.0-20220916.063540-789.jar:3.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) ~[spring-boot-3.0.0-20220916.063540-789.jar:3.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1323) ~[spring-boot-3.0.0-20220916.063540-789.jar:3.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) ~[spring-boot-3.0.0-20220916.063540-789.jar:3.0.0-SNAPSHOT]
    at com.example.demo.DemoApplication.main(DemoApplication.java:19) ~[classes/:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-3.0.0-20220916.063540-789.jar:3.0.0-SNAPSHOT]
Caused by: org.apache.kafka.common.KafkaException: Failed to construct kafka producer
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:439) ~[kafka-clients-3.2.2.jar:na]
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:289) ~[kafka-clients-3.2.2.jar:na]
    at org.springframework.kafka.core.DefaultKafkaProducerFactory.createRawProducer(DefaultKafkaProducerFactory.java:884) ~[spring-kafka-3.0.0-20220915.154845-199.jar:3.0.0-SNAPSHOT]
    at org.springframework.kafka.core.DefaultKafkaProducerFactory.createKafkaProducer(DefaultKafkaProducerFactory.java:777) ~[spring-kafka-3.0.0-20220915.154845-199.jar:3.0.0-SNAPSHOT]
    at org.springframework.kafka.core.DefaultKafkaProducerFactory.doCreateProducer(DefaultKafkaProducerFactory.java:747) ~[spring-kafka-3.0.0-20220915.154845-199.jar:3.0.0-SNAPSHOT]
    at org.springframework.kafka.core.DefaultKafkaProducerFactory.createProducer(DefaultKafkaProducerFactory.java:727) ~[spring-kafka-3.0.0-20220915.154845-199.jar:3.0.0-SNAPSHOT]
    at org.springframework.kafka.core.DefaultKafkaProducerFactory.createProducer(DefaultKafkaProducerFactory.java:721) ~[spring-kafka-3.0.0-20220915.154845-199.jar:3.0.0-SNAPSHOT]
    at org.springframework.kafka.core.KafkaTemplate.getTheProducer(KafkaTemplate.java:759) ~[spring-kafka-3.0.0-20220915.154845-199.jar:3.0.0-SNAPSHOT]
    at org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:631) ~[spring-kafka-3.0.0-20220915.154845-199.jar:3.0.0-SNAPSHOT]
    at org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:415) ~[spring-kafka-3.0.0-20220915.154845-199.jar:3.0.0-SNAPSHOT]
    at com.example.demo.service.ProducerService.sendMessage(ProducerService.java:21) ~[classes/:na]
    at com.example.demo.DemoApplication.run(DemoApplication.java:26) ~[classes/:na]
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:779) ~[spring-boot-3.0.0-20220916.063540-789.jar:3.0.0-SNAPSHOT]
    ... 10 common frames omitted
Caused by: org.apache.kafka.common.config.ConfigException: No resolvable bootstrap urls given in bootstrap.servers
    at org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:89) ~[kafka-clients-3.2.2.jar:na]
    at org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:48) ~[kafka-clients-3.2.2.jar:na]
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:413) ~[kafka-clients-3.2.2.jar:na]
    ... 22 common frames omitted

Yapmam gereken farklı konfigürasyonlar mı var? Yardımcı olursanız sevinirim.

Teşekkürler.
 

Technopat Haberler

Geri
Yukarı