-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
92 lines (84 loc) · 2.93 KB
/
docker-compose.yml
File metadata and controls
92 lines (84 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
version: '3.8'
services:
# Zookeeper: Coordina y gestiona el cluster de Kafka
# Es necesario para que Kafka funcione correctamente
zookeeper:
image: confluentinc/cp-zookeeper:7.5.0
container_name: zookeeper
environment:
# ID único del servidor Zookeeper
ZOOKEEPER_SERVER_ID: 1
# Puerto donde Zookeeper escucha las conexiones de los clientes
ZOOKEEPER_CLIENT_PORT: 2181
# Intervalo de heartbeat en milisegundos
ZOOKEEPER_TICK_TIME: 2000
ports:
- "2181:2181"
networks:
- kafka-network
volumes:
- zookeeper-data:/var/lib/zookeeper/data
- zookeeper-logs:/var/lib/zookeeper/log
# Kafka Broker: El servidor principal de Kafka donde se almacenan los mensajes
kafka:
image: confluentinc/cp-kafka:7.5.0
container_name: kafka
depends_on:
- zookeeper
ports:
# Puerto 9092: Para conexiones desde el host (tu máquina)
- "9092:9092"
# Puerto 29092: Para conexiones internas entre contenedores
- "29092:29092"
environment:
# ID único del broker de Kafka
KAFKA_BROKER_ID: 1
# Conexión a Zookeeper
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
# Configuración de listeners (puntos de acceso)
# PLAINTEXT: Protocolo sin encriptación para desarrollo
# PLAINTEXT_HOST: Para acceso desde el host
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
# Configuración de offsets (posición de lectura de mensajes)
# latest: Lee solo mensajes nuevos
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
# Configuración de logs
KAFKA_LOG_RETENTION_HOURS: 168
KAFKA_LOG_SEGMENT_BYTES: 1073741824
KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: 300000
networks:
- kafka-network
volumes:
- kafka-data:/var/lib/kafka/data
# Kafka UI: Interfaz web para visualizar y gestionar Kafka
# Accede desde tu navegador en http://localhost:8080
kafka-ui:
image: provectuslabs/kafka-ui:latest
container_name: kafka-ui
depends_on:
- kafka
ports:
- "8080:8080"
environment:
# Nombre del cluster que verás en la UI
KAFKA_CLUSTERS_0_NAME: local
# Conexión al broker de Kafka
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:29092
# Conexión a Zookeeper para obtener más información
KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181
networks:
- kafka-network
# Red personalizada para que los contenedores se comuniquen entre sí
networks:
kafka-network:
driver: bridge
# Volúmenes para persistir los datos incluso si detienes los contenedores
volumes:
zookeeper-data:
zookeeper-logs:
kafka-data: