-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.prod.yml
More file actions
106 lines (101 loc) · 4.01 KB
/
docker-compose.prod.yml
File metadata and controls
106 lines (101 loc) · 4.01 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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# =============================================================================
# 운영 환경용 Docker Compose 예시
# =============================================================================
# 이 설정은 운영 환경 구성의 참고용입니다.
# 실제 운영에서는 Kubernetes, AWS MSK 등 관리형 서비스 권장.
#
# Kafka 설정:
# - 3개 브로커 클러스터
# - Replication Factor: 3
# - 2개 브로커 장애에도 데이터 유지
# =============================================================================
version: '3.8'
services:
# ---------------------------------------------------------------------------
# Kafka 브로커 1
# ---------------------------------------------------------------------------
kafka-1:
image: confluentinc/cp-kafka:7.4.0
container_name: ecommerce-kafka-1
ports:
- "9092:9092"
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1:9092
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka-1:9093,2@kafka-2:9093,3@kafka-3:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_MIN_INSYNC_REPLICAS: 2
KAFKA_LOG_DIRS: /var/lib/kafka/data
CLUSTER_ID: 'ecommerce-kafka-cluster-prod'
volumes:
- kafka_data_1:/var/lib/kafka/data
networks:
- kafka-network
# ---------------------------------------------------------------------------
# Kafka 브로커 2
# ---------------------------------------------------------------------------
kafka-2:
image: confluentinc/cp-kafka:7.4.0
container_name: ecommerce-kafka-2
ports:
- "9093:9092"
environment:
KAFKA_NODE_ID: 2
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-2:9092
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka-1:9093,2@kafka-2:9093,3@kafka-3:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_MIN_INSYNC_REPLICAS: 2
KAFKA_LOG_DIRS: /var/lib/kafka/data
CLUSTER_ID: 'ecommerce-kafka-cluster-prod'
volumes:
- kafka_data_2:/var/lib/kafka/data
networks:
- kafka-network
# ---------------------------------------------------------------------------
# Kafka 브로커 3
# ---------------------------------------------------------------------------
kafka-3:
image: confluentinc/cp-kafka:7.4.0
container_name: ecommerce-kafka-3
ports:
- "9094:9092"
environment:
KAFKA_NODE_ID: 3
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-3:9092
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka-1:9093,2@kafka-2:9093,3@kafka-3:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_MIN_INSYNC_REPLICAS: 2
KAFKA_LOG_DIRS: /var/lib/kafka/data
CLUSTER_ID: 'ecommerce-kafka-cluster-prod'
volumes:
- kafka_data_3:/var/lib/kafka/data
networks:
- kafka-network
volumes:
kafka_data_1:
kafka_data_2:
kafka_data_3:
networks:
kafka-network:
driver: bridge