Make the Project More Docker-Friendly #1
4 changed files with 79 additions and 72 deletions
|
@ -1,59 +0,0 @@
|
||||||
version: '3.5'
|
|
||||||
|
|
||||||
services:
|
|
||||||
zookeeper:
|
|
||||||
image: strimzi/kafka:0.19.0-kafka-2.5.0
|
|
||||||
command: [
|
|
||||||
"sh", "-c",
|
|
||||||
"bin/zookeeper-server-start.sh config/zookeeper.properties"
|
|
||||||
]
|
|
||||||
ports:
|
|
||||||
- "2181:2181"
|
|
||||||
environment:
|
|
||||||
LOG_DIR: /tmp/logs
|
|
||||||
networks:
|
|
||||||
- kafkastreams-network
|
|
||||||
|
|
||||||
kafka:
|
|
||||||
image: strimzi/kafka:0.19.0-kafka-2.5.0
|
|
||||||
command: [
|
|
||||||
"sh", "-c",
|
|
||||||
"bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT} --override num.partitions=$${KAFKA_NUM_PARTITIONS} --override group.min.session.timeout.ms=$${KAFKA_GROUP_MIN_SESSION_TIMEOUT_MS}"
|
|
||||||
]
|
|
||||||
depends_on:
|
|
||||||
- zookeeper
|
|
||||||
ports:
|
|
||||||
- "9092:9092"
|
|
||||||
environment:
|
|
||||||
LOG_DIR: "/tmp/logs"
|
|
||||||
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
|
|
||||||
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
|
|
||||||
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
|
||||||
KAFKA_NUM_PARTITIONS: 3
|
|
||||||
KAFKA_GROUP_MIN_SESSION_TIMEOUT_MS: 100
|
|
||||||
networks:
|
|
||||||
- kafkastreams-network
|
|
||||||
|
|
||||||
producer:
|
|
||||||
image: quarkus-quickstarts/kafka-streams-producer:1.0
|
|
||||||
build:
|
|
||||||
context: producer
|
|
||||||
dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm}
|
|
||||||
environment:
|
|
||||||
KAFKA_BOOTSTRAP_SERVERS: kafka:9092
|
|
||||||
networks:
|
|
||||||
- kafkastreams-network
|
|
||||||
|
|
||||||
aggregator:
|
|
||||||
image: quarkus-quickstarts/kafka-streams-aggregator:1.0
|
|
||||||
build:
|
|
||||||
context: aggregator
|
|
||||||
dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm}
|
|
||||||
environment:
|
|
||||||
QUARKUS_KAFKA_STREAMS_BOOTSTRAP_SERVERS: kafka:9092
|
|
||||||
networks:
|
|
||||||
- kafkastreams-network
|
|
||||||
|
|
||||||
networks:
|
|
||||||
kafkastreams-network:
|
|
||||||
name: ks
|
|
|
@ -1,15 +1,79 @@
|
||||||
version: '2'
|
version: '3.5'
|
||||||
|
|
||||||
networks:
|
|
||||||
kafka:
|
|
||||||
driver: bridge
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
kafka:
|
# Handle the coordination between the kafka images
|
||||||
image: bitnami/kafka
|
zookeeper:
|
||||||
|
image: strimzi/kafka:0.19.0-kafka-2.5.0
|
||||||
|
command: [
|
||||||
|
"sh", "-c",
|
||||||
|
"bin/zookeeper-server-start.sh config/zookeeper.properties"
|
||||||
|
]
|
||||||
ports:
|
ports:
|
||||||
- "9092:9092"
|
- "2181:2181"
|
||||||
|
environment:
|
||||||
|
LOG_DIR: /tmp/logs
|
||||||
networks:
|
networks:
|
||||||
- kafka
|
- kafka
|
||||||
volumes:
|
|
||||||
- kafka_data:/bitnami/kafka
|
# The event system
|
||||||
|
kafka:
|
||||||
|
image: strimzi/kafka:0.19.0-kafka-2.5.0
|
||||||
|
command: [
|
||||||
|
"sh", "-c",
|
||||||
|
"bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT} --override num.partitions=$${KAFKA_NUM_PARTITIONS} --override group.min.session.timeout.ms=$${KAFKA_GROUP_MIN_SESSION_TIMEOUT_MS}"
|
||||||
|
]
|
||||||
|
depends_on:
|
||||||
|
- zookeeper
|
||||||
|
ports:
|
||||||
|
- "9092:9092"
|
||||||
|
environment:
|
||||||
|
LOG_DIR: "/tmp/logs"
|
||||||
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
|
||||||
|
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
|
||||||
|
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
||||||
|
KAFKA_NUM_PARTITIONS: 3
|
||||||
|
KAFKA_GROUP_MIN_SESSION_TIMEOUT_MS: 100
|
||||||
|
networks:
|
||||||
|
- kafka
|
||||||
|
|
||||||
|
# Producer to a Kafka cluster
|
||||||
|
producer:
|
||||||
|
image: quarkus-quickstarts/kafka-streams-producer:1.0
|
||||||
|
build:
|
||||||
|
context: producer
|
||||||
|
dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm}
|
||||||
|
environment:
|
||||||
|
KAFKA_BOOTSTRAP_SERVERS: kafka:9092
|
||||||
|
networks:
|
||||||
|
- kafka
|
||||||
|
|
||||||
|
# Aggregator to a Kafka cluster
|
||||||
|
aggregator:
|
||||||
|
image: quarkus-quickstarts/kafka-streams-aggregator:1.0
|
||||||
|
build:
|
||||||
|
context: aggregator
|
||||||
|
dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm}
|
||||||
|
environment:
|
||||||
|
QUARKUS_KAFKA_STREAMS_BOOTSTRAP_SERVERS: kafka:9092
|
||||||
|
networks:
|
||||||
|
- kafka
|
||||||
|
|
||||||
|
# Our application
|
||||||
|
application:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm}
|
||||||
|
environment:
|
||||||
|
KAFKA_BOOTSTRAP_SERVERS: kafka:9092
|
||||||
|
depends_on:
|
||||||
|
- zookeeper
|
||||||
|
- kafka
|
||||||
|
- producer
|
||||||
|
- aggregator
|
||||||
|
networks:
|
||||||
|
- kafka
|
||||||
|
|
||||||
|
networks:
|
||||||
|
# the Kafka network
|
||||||
|
kafka:
|
||||||
|
name: kafka
|
||||||
|
|
|
@ -20,12 +20,12 @@ class Consumer {
|
||||||
private val topic: String = "mon_beau_topic"
|
private val topic: String = "mon_beau_topic"
|
||||||
|
|
||||||
init {
|
init {
|
||||||
this.properties[ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG] = "org.apache.kafka.common.serialization.StringSerializer"
|
|
||||||
this.properties[ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG] = "org.apache.kafka.common.serialization.StringSerializer"
|
this.properties[ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG] = "org.apache.kafka.common.serialization.StringSerializer"
|
||||||
|
|
||||||
this.properties[ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG] = "org.apache.kafka.common.serialization.StringSerializer"
|
this.properties[ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG] = "org.apache.kafka.common.serialization.StringSerializer"
|
||||||
this.properties[ConsumerConfig.GROUP_ID_CONFIG] = "premier_groupe"
|
this.properties[ConsumerConfig.GROUP_ID_CONFIG] = "premier_groupe"
|
||||||
this.properties[ConsumerConfig.AUTO_OFFSET_RESET_CONFIG] = "earliest"
|
this.properties[ConsumerConfig.AUTO_OFFSET_RESET_CONFIG] = "earliest"
|
||||||
|
this.properties[ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG] = System.getenv("KAFKA_BOOTSTRAP_SERVERS")
|
||||||
|
?: throw IllegalArgumentException("Missing environment variable: KAFKA_BOOTSTRAP_SERVERS")
|
||||||
|
|
||||||
this.consumer = KafkaConsumer(properties);
|
this.consumer = KafkaConsumer(properties);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,9 +15,11 @@ class Producer {
|
||||||
private val topic: String = "Température_Celsius"
|
private val topic: String = "Température_Celsius"
|
||||||
|
|
||||||
init {
|
init {
|
||||||
this.properties[ProducerConfig.BOOTSTRAP_SERVERS_CONFIG] = "localhost:9092"
|
|
||||||
this.properties[ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG] = "org.apache.kafka.common.serialization.StringSerializer"
|
this.properties[ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG] = "org.apache.kafka.common.serialization.StringSerializer"
|
||||||
this.properties[ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG] = "org.apache.kafka.common.serialization.StringSerializer"
|
this.properties[ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG] = "org.apache.kafka.common.serialization.StringSerializer"
|
||||||
|
this.properties[ProducerConfig.BOOTSTRAP_SERVERS_CONFIG] = System.getenv("KAFKA_BOOTSTRAP_SERVERS")
|
||||||
|
?: throw IllegalArgumentException("Missing environment variable: KAFKA_BOOTSTRAP_SERVERS")
|
||||||
|
|
||||||
this.producer = KafkaProducer(properties)
|
this.producer = KafkaProducer(properties)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue