Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit743892d

Browse files
Step 9. Add Kafka
1 parentab35c3c commit743892d

File tree

4 files changed

+82
-1
lines changed

4 files changed

+82
-1
lines changed

‎existing-spring-boot-app-modification/spring-petclinic-main/build.gradle‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ dependencies {
3939
compileOnly'org.mapstruct:mapstruct:1.5.3.Final'
4040
annotationProcessor'org.mapstruct:mapstruct-processor:1.5.3.Final'
4141
testImplementation'org.springframework.security:spring-security-test'
42+
implementation'org.springframework.kafka:spring-kafka'
4243
}
4344

4445
tasks.named('test') {

‎existing-spring-boot-app-modification/spring-petclinic-main/docker-compose.yaml‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,33 @@ services:
1616
timeout:5s
1717
start_period:10s
1818
retries:5
19+
kafka:
20+
image:confluentinc/cp-kafka:7.6.1
21+
restart:always
22+
ports:
23+
-"29092:29092"
24+
-"9092:9092"
25+
volumes:
26+
-kafka_data:/var/lib/kafka/data
27+
environment:
28+
KAFKA_ADVERTISED_LISTENERS:PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
29+
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP:PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,CONTROLLER:PLAINTEXT
30+
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR:1
31+
KAFKA_INTER_BROKER_LISTENER_NAME:PLAINTEXT
32+
KAFKA_NODE_ID:1
33+
CLUSTER_ID:8GyRIS62T8aMSkDJs-AH5Q
34+
KAFKA_PROCESS_ROLES:controller,broker
35+
KAFKA_CONTROLLER_QUORUM_VOTERS:1@kafka:9093
36+
KAFKA_CONTROLLER_LISTENER_NAMES:CONTROLLER
37+
KAFKA_LISTENERS:PLAINTEXT://kafka:29092,PLAINTEXT_HOST://0.0.0.0:9092,CONTROLLER://kafka:9093
38+
healthcheck:
39+
test:kafka-topics --bootstrap-server localhost:9092 --list
40+
interval:10s
41+
timeout:5s
42+
start_period:30s
43+
retries:5
44+
labels:
45+
amplicode.image:confluent/kafka
1946
volumes:
2047
postgres_data:
48+
kafka_data:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
packageorg.springframework.samples.petclinic.system;
2+
3+
importorg.apache.kafka.clients.consumer.ConsumerConfig;
4+
importorg.apache.kafka.clients.producer.ProducerConfig;
5+
importorg.apache.kafka.common.serialization.StringDeserializer;
6+
importorg.apache.kafka.common.serialization.StringSerializer;
7+
importorg.springframework.boot.autoconfigure.kafka.KafkaProperties;
8+
importorg.springframework.context.annotation.Bean;
9+
importorg.springframework.context.annotation.Configuration;
10+
importorg.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
11+
importorg.springframework.kafka.config.KafkaListenerContainerFactory;
12+
importorg.springframework.kafka.core.ConsumerFactory;
13+
importorg.springframework.kafka.core.DefaultKafkaConsumerFactory;
14+
importorg.springframework.kafka.core.DefaultKafkaProducerFactory;
15+
importorg.springframework.kafka.core.KafkaTemplate;
16+
17+
importjava.util.Map;
18+
19+
@Configuration
20+
publicclassKafkaConfiguration {
21+
22+
@Bean
23+
DefaultKafkaProducerFactory<String,String>stringProducerFactory(KafkaPropertiesproperties) {
24+
Map<String,Object>producerProperties =properties.buildProducerProperties();
25+
producerProperties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,StringSerializer.class);
26+
producerProperties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,StringSerializer.class);
27+
returnnewDefaultKafkaProducerFactory<>(producerProperties);
28+
}
29+
30+
@Bean
31+
KafkaTemplate<String,String>stringKafkaTemplate(DefaultKafkaProducerFactory<String,String>stringProducerFactory) {
32+
returnnewKafkaTemplate<>(stringProducerFactory);
33+
}
34+
35+
@Bean
36+
publicConsumerFactory<String,String>stringConsumerFactory(KafkaPropertieskafkaProperties) {
37+
Map<String,Object>props =kafkaProperties.buildConsumerProperties();
38+
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,StringDeserializer.class);
39+
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,StringDeserializer.class);
40+
returnnewDefaultKafkaConsumerFactory<>(props);
41+
}
42+
43+
@Bean
44+
publicKafkaListenerContainerFactory<?>stringListenerFactory(ConsumerFactory<String,String>stringConsumerFactory) {
45+
ConcurrentKafkaListenerContainerFactory<String,String>factory =newConcurrentKafkaListenerContainerFactory<>();
46+
factory.setConsumerFactory(stringConsumerFactory);
47+
factory.setBatchListener(false);
48+
returnfactory;
49+
}
50+
}

‎existing-spring-boot-app-modification/spring-petclinic-main/src/main/resources/application.properties‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ spring.jpa.open-in-view=true
1111
spring.jpa.show-sql=true
1212
# Internationalization
1313
spring.messages.basename=messages/messages
14-
14+
#Spring Kafka
15+
spring.kafka.consumer.group-id=visit
16+
spring.kafka.bootstrap-servers=localhost:9092
1517
# Actuator
1618
management.endpoints.web.exposure.include=*
1719

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp