Event Hubs는 기존 Kafka 기반 애플리케이션에서 사용할 수 있는 Kafka 엔드포인트를 제공합니다.
이 방법은 사용자 고유의 Kafka 클러스터를 실행하는 대신 사용할 수 있습니다.
1. application.properties를 아래와 같이 작성합니다.
spring.kafka.bootstrap-servers=<EVENTHUB-NAMESPACE>.servicebus.windows.net:9093
spring.kafka.properties.security.protocol=SASL_SSL
spring.kafka.properties.sasl.mechanism=PLAIN
spring.kafka.properties.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="<EVENTHUB-NAMESPACE-ENDPOINT>";
2. build.gradle을 아래와 같이 작성 합니다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.5'
id 'io.spring.dependency-management' version '1.1.3'
}
group = 'com.kbhc'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.kafka:spring-kafka'
implementation 'com.azure.spring:spring-cloud-azure-starter:4.7.0'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.kafka:spring-kafka-test'
}
tasks.named('test') {
useJUnitPlatform()
}
jar {
enabled = false
}
3. 코드는 아래와 같이 작성합니다.
package com.kbhc.eventhubgradle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.core.KafkaTemplate;
@SpringBootApplication
public class EventhubGradleApplication implements CommandLineRunner {
private static final Logger LOGGER = LoggerFactory.getLogger(EventhubGradleApplication.class);
private static final String EVENT_HUB_NAME = "test";
private static final String CONSUMER_GROUP = "$Default";
private final KafkaTemplate<String, String> kafkaTemplate;
public EventhubGradleApplication(KafkaTemplate<String, String> kafkaTemplate) {
this.kafkaTemplate = kafkaTemplate;
}
public static void main(String[] args) {
SpringApplication.run(EventhubGradleApplication.class, args);
}
@Override
public void run(String... args) {
kafkaTemplate.send(EVENT_HUB_NAME, "Hello World");
LOGGER.info("Message was sent successfully.");
}
@KafkaListener(topics = EVENT_HUB_NAME, groupId = CONSUMER_GROUP)
public void receive(String message) {
LOGGER.info("New message received: {}", message);
}
}
참고 링크
Spring 애플리케이션에서 Event Hubs 사용 - Java on Azure
이 문서에서는 Spring Framework로 빌드된 Java 애플리케이션에서 Azure Event Hubs를 사용하는 방법을 보여 줍니다.
learn.microsoft.com
'클라우드 > Azure' 카테고리의 다른 글
[EventHub] EventHub에서 Kafka를 사용 (0) | 2025.01.30 |
---|---|
[Kubernetes] AKS Premium Storage Persistent Volume 기능 검증 (0) | 2025.01.30 |
[Kubernetes] Kubernetes Forward Proxy를 통한 Outbound 통제 (0) | 2025.01.30 |
[DNS] Azure Private DNS Resolver 구성 (0) | 2025.01.30 |
[AppService] AppService with Application Gateway (0) | 2025.01.29 |