image: juplo/toolbox
command: sleep infinity
- gateway:
- image: juplo/sumup-gateway:1.0-SNAPSHOT
+ gateway-partition-0:
+ image: juplo/sumup-gateway-springified:1.0-SNAPSHOT
ports:
- 8080:8080
environment:
server.port: 8080
- sumup.gateway.bootstrap-server: kafka:9092
- sumup.gateway.client-id: gateway
+ spring-kafka.bootstrap-servers: kafka:9092
+ spring.kafka.client-id: gateway-partition-0
+ sumup.gateway.partition: 0
+
+ gateway-partition-0:
+ image: juplo/sumup-gateway-springified:1.0-SNAPSHOT
+ ports:
+ - 8081:8080
+ environment:
+ server.port: 8080
+ spring-kafka.bootstrap-servers: kafka:9092
+ spring.kafka.client-id: gateway-partition-1
+ sumup.gateway.partition: 1
+
+ gateway-hashed:
+ image: juplo/sumup-gateway-springified:1.0-SNAPSHOT
+ ports:
+ - 8082:8080
+ environment:
+ server.port: 8080
+ spring-kafka.bootstrap-servers: kafka:9092
+ spring.kafka.client-id: gateway-hashed
consumer:
image: juplo/toolbox
package de.juplo.kafka;
-import org.apache.kafka.clients.producer.KafkaProducer;
-import org.apache.kafka.clients.producer.Producer;
import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.kafka.core.KafkaTemplate;
-import org.springframework.kafka.core.ProducerFactory;
-
-import java.util.Properties;
@Configuration
applicationProperties.getPartition(),
kafkaTemplate);
}
-
- @Bean(destroyMethod = "close")
- public Producer<String, Integer> kafkaProducer(ProducerFactory<String, Integer> factory)
- {
- return factory.createProducer();
- }
}
batch-size: 16384
compression-type: gzip
key-serializer: org.apache.kafka.common.serialization.StringSerializer
- value-serializer: org.springframework.kafka.support.serializer.IntegerSerializer
+ value-serializer: org.apache.kafka.common.serialization.IntegerSerializer
properties:
linger.ms: 0
delivery.timeout.ms: 20000 # 20 Sekunden