Skip to content

Commit d8892f5

Browse files
authored
[kafka] build kafka image (#617)
* build kafka image Signed-off-by: Pierre Tessier <[email protected]> * build kafka image Signed-off-by: Pierre Tessier <[email protected]> * build kafka image Signed-off-by: Pierre Tessier <[email protected]> * build kafka image Signed-off-by: Pierre Tessier <[email protected]> * build kafka image Signed-off-by: Pierre Tessier <[email protected]> Signed-off-by: Pierre Tessier <[email protected]>
1 parent 5c06d52 commit d8892f5

File tree

5 files changed

+46
-21
lines changed

5 files changed

+46
-21
lines changed

.env

-1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,5 @@ JAEGER_SERVICE_HOST=jaeger
8585
# Kafka
8686
KAFKA_SERVICE_PORT=9092
8787
KAFKA_SERVICE_ADDR=kafka:${KAFKA_SERVICE_PORT}
88-
ZOOKEEPER_SERVICE_PORT=2181
8988

9089
ENV_PLATFORM=local

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -152,3 +152,5 @@ significant modifications will be credited to OpenTelemetry Authors.
152152
([#615](https://github.com/open-telemetry/opentelemetry-demo/pull/615))
153153
* Add tracing to Envoy (frontend-proxy)
154154
([#613](https://github.com/open-telemetry/opentelemetry-demo/pull/613))
155+
* Build Kafka image
156+
([#617](https://github.com/open-telemetry/opentelemetry-demo/pull/617))

docker-compose.yml

+12-20
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ services:
3737
deploy:
3838
resources:
3939
limits:
40-
memory: 300M
40+
memory: 20M
4141
restart: always
4242
environment:
4343
- KAFKA_SERVICE_ADDR
@@ -525,28 +525,20 @@ services:
525525

526526
# Kafka used by Checkout, Accounting, and Fraud Detection services
527527
kafka:
528-
image: confluentinc/cp-kafka:7.2.2-1-ubi8
529-
hostname: kafka
528+
image: ${IMAGE_NAME}:${IMAGE_VERSION}-kafka
530529
container_name: kafka
530+
build:
531+
context: ./
532+
dockerfile: ./src/kafka/Dockerfile
533+
cache_from:
534+
- ${IMAGE_NAME}:${IMAGE_VERSION}-kafka
535+
deploy:
536+
resources:
537+
limits:
538+
memory: 600M
539+
restart: always
531540
environment:
532-
KAFKA_LISTENERS: PLAINTEXT://kafka:9092,CONTROLLER://kafka:9093
533541
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
534-
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
535-
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
536-
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
537-
KAFKA_PROCESS_ROLES: 'controller,broker'
538-
KAFKA_NODE_ID: 1
539-
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@kafka:9093'
540-
KAFKA_METADATA_LOG_SEGMENT_MS: 15000
541-
KAFKA_METADATA_MAX_RETENTION_MS: 1200000
542-
KAFKA_METADATA_LOG_MAX_RECORD_BYTES_BETWEEN_SNAPSHOTS: 2800
543-
KAFKA_AUTO_CREATE_TOPICS_ENABLE: true
544-
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
545-
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
546-
volumes:
547-
- ./src/kafka/update_run.sh:/tmp/update_run.sh
548-
- ./src/kafka/clusterID:/tmp/clusterID
549-
command: "bash -c 'ls -lh /tmp && /tmp/update_run.sh && /etc/confluent/docker/run'"
550542
logging: *logging
551543
healthcheck:
552544
test: nc -z kafka 9092

src/kafka/Dockerfile

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
FROM confluentinc/cp-kafka:latest-ubi8
2+
3+
USER appuser
4+
WORKDIR /tmp
5+
COPY ./src/kafka/clusterID clusterID
6+
COPY ./src/kafka/update_run.sh update_run.sh
7+
8+
ENV KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
9+
ENV KAFKA_CONTROLLER_QUORUM_VOTERS='[email protected]:9093'
10+
ENV KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER
11+
ENV KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
12+
ENV KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0
13+
ENV KAFKA_PROCESS_ROLES=controller,broker
14+
ENV KAFKA_NODE_ID=1
15+
ENV KAFKA_METADATA_LOG_SEGMENT_MS=15000
16+
ENV KAFKA_METADATA_MAX_RETENTION_MS=1200000
17+
ENV KAFKA_METADATA_LOG_MAX_RECORD_BYTES_BETWEEN_SNAPSHOTS=2800
18+
ENV KAFKA_AUTO_CREATE_TOPICS_ENABLE=true
19+
ENV KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
20+
ENV KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1
21+
22+
ENTRYPOINT ["/bin/sh", "-c", "ls -lh /tmp && /tmp/update_run.sh && /etc/confluent/docker/run"]

src/kafka/README.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Kafka
2+
3+
This is used as a message queue service to connect the checkout service with
4+
the accounting and fraud detection services.
5+
6+
## KRaft: Kafka without ZooKeeper
7+
8+
Kafka is run in KRaft mode. The `update_run.sh` script is used to configure
9+
the system to run Kafka in this mode. Environment variables are substituted at
10+
deploy-time.

0 commit comments

Comments
 (0)