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:
ProducerService classım:
application.properties dosyası:
Projeyi ayağa kaldırdığımda aldığım hata:
Yapmam gereken farklı konfigürasyonlar mı var? Yardımcı olursanız sevinirim.
Teşekkürler.
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.