Skip to content

Commit 3a5d9c1

Browse files
authored
Merge pull request #83 from for-men/release/mvp2
Release/mvp2
2 parents 82b3dfc + 7b82099 commit 3a5d9c1

9 files changed

Lines changed: 209 additions & 59 deletions

File tree

application/order-service/src/main/java/com/fortickets/orderservice/application/client/ConcertClient.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,21 @@ public interface ConcertClient {
1616
// TODO: 내부 API 생성 필요
1717
// Schedule(concert, stage) 정보 조회
1818
@GetMapping("/schedules/{scheduleId}/detail")
19-
GetScheduleDetailRes getScheduleDetail(@PathVariable Long scheduleId);
19+
GetScheduleDetailRes getScheduleDetail(@PathVariable(value = "scheduleId" ) Long scheduleId);
2020

2121
// Concert 정보 조회 o
2222
@GetMapping("/concerts/{concertId}/detail")
23-
GetConcertRes getConcert(@PathVariable Long concertId);
23+
GetConcertRes getConcert(@PathVariable(value = "concertId" ) Long concertId);
2424

2525
// Concert Name이 포함된 Concert 정보 조회
2626
@GetMapping("/concerts/{concertName}/search")
27-
List<GetConcertRes> searchConcertName(@PathVariable String concertName);
27+
List<GetConcertRes> searchConcertName(@PathVariable(value = "concertName") String concertName);
2828

2929
// userId와 concertName이 포함된 Concert 정보 조회 o
3030
@GetMapping("/concerts/{userId}/{concertName}/search")
31-
List<GetConcertRes> searchConcert(@PathVariable Long userId, @PathVariable String concertName);
31+
List<GetConcertRes> searchConcert(@PathVariable(value = "userId") Long userId, @PathVariable(value = "concertName") String concertName);
3232

3333
// userId로 Concert 정보 조회 o
3434
@GetMapping("/concerts/{userId}/seller")
35-
List<GetConcertRes> getConcertBySeller(@PathVariable Long userId);
35+
List<GetConcertRes> getConcertBySeller(@PathVariable(value ="userId")Long userId);
3636
}

application/order-service/src/main/java/com/fortickets/orderservice/application/client/UserClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public interface UserClient {
1313

1414
// TODO : 내부 API 생성 필요
1515
@GetMapping("/users/{userId}")
16-
GetUserRes getUser(@PathVariable Long userId);
16+
GetUserRes getUser(@PathVariable(value = "userId") Long userId);
1717

1818
@GetMapping("/users/{nickname}/nickname")
19-
List<GetUserRes> searchNickname(@PathVariable String nickname);
19+
List<GetUserRes> searchNickname(@PathVariable(value = "nickname") String nickname);
2020
}

component/redis/src/main/java/com/fortickets/redis/config/RedissonConfig.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,24 @@
33
import org.redisson.Redisson;
44
import org.redisson.api.RedissonClient;
55
import org.redisson.config.Config;
6+
import org.springframework.beans.factory.annotation.Value;
67
import org.springframework.context.annotation.Bean;
78
import org.springframework.context.annotation.Configuration;
89

910
@Configuration
11+
1012
public class RedissonConfig {
13+
@Value("${SPRING_REDIS_HOST:localhost}") // 기본값은 localhost
14+
private String redisHost;
15+
16+
@Value("${SPRING_REDIS_PORT:6379}") // 기본값은 6379
17+
private int redisPort;
1118

1219
@Bean
1320
public RedissonClient redissonClient() {
1421
Config config = new Config();
1522

23+
1624
// Redis 서버 주소와 비밀번호 설정 (필요에 따라 변경)
1725
// config.useSingleServer()
1826
// .setAddress("redis://localhost:6379") // Redis 서버 주소
@@ -24,9 +32,8 @@ public RedissonClient redissonClient() {
2432
// .setPassword("systempass"); // Redis 비밀번호
2533

2634
config.useSingleServer()
27-
.setAddress("redis://localhost:6379");
28-
// .setPassword("systempass");
35+
.setAddress("redis://" + redisHost + ":" + redisPort);
2936

30-
return Redisson.create(config); // RedissonClient 인스턴스 생성
37+
return Redisson.create(config);
3138
}
3239
}

docker-compose.yml

Lines changed: 152 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,140 @@
1+
version: '3.8'
2+
13
services:
4+
eureka-service:
5+
image: uzjaee/eureka:0.2 # 빌드한 eureka 이미지 이름
6+
ports:
7+
- '12001:12001' # Eureka의 기본 포트
8+
networks:
9+
- service-network
10+
11+
gateway-service:
12+
image: uzjaee/gateway-service:0.2 # 빌드한 gateway 이미지 이름
13+
ports:
14+
- '12011:12011' # Gateway의 포트
15+
environment:
16+
- SPRING_CLOUD_GATEWAY_DISCOVERY_CLIENT_ENABLED=true
17+
- EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://eureka-service:12001/eureka/
18+
depends_on:
19+
- eureka-service
20+
networks:
21+
- service-network
22+
23+
user-service:
24+
image: uzjaee/user-service:0.4
25+
ports:
26+
- '12021:12021'
27+
environment:
28+
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres-user:5432/fortickets
29+
- SPRING_DATASOURCE_USERNAME=forman
30+
- SPRING_DATASOURCE_PASSWORD=1234
31+
- EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://eureka-service:12001/eureka/
32+
- SPRING_REDIS_HOST=redis
33+
- SPRING_REDIS_PORT=6379
34+
depends_on:
35+
- postgres-user
36+
- eureka-service
37+
- redis
38+
networks:
39+
- service-network
40+
41+
42+
43+
postgres-user:
44+
image: 'postgres:16.4'
45+
environment:
46+
- 'POSTGRES_DB=fortickets'
47+
- 'POSTGRES_PASSWORD=1234'
48+
- 'POSTGRES_USER=forman'
49+
ports:
50+
- '54322:5432'
51+
volumes:
52+
- ../db/user-service:/var/lib/postgresql/data
53+
networks:
54+
- service-network
55+
56+
concert-service:
57+
image: uzjaee/concert-service:0.2 # 빌드한 concert-service 이미지 이름
58+
ports:
59+
- '12031:12031' # Concert 서비스의 포트
60+
environment:
61+
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres-concert:5432/fortickets
62+
- SPRING_DATASOURCE_USERNAME=forman
63+
- SPRING_DATASOURCE_PASSWORD=1234
64+
- EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://eureka-service:12001/eureka/
65+
depends_on:
66+
- postgres-concert
67+
- eureka-service
68+
networks:
69+
- service-network
70+
71+
postgres-concert:
72+
image: 'postgres:16.4'
73+
environment:
74+
- 'POSTGRES_DB=fortickets'
75+
- 'POSTGRES_PASSWORD=1234'
76+
- 'POSTGRES_USER=forman'
77+
ports:
78+
- '54323:5432'
79+
volumes:
80+
- ../db/concert-service:/var/lib/postgresql/data
81+
networks:
82+
- service-network
83+
84+
order-service:
85+
image: uzjaee/order-service:0.4 # 빌드한 order-service 이미지 이름
86+
ports:
87+
- '12041:12041' # Order 서비스의 포트
88+
environment:
89+
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres-order:5432/fortickets
90+
- SPRING_DATASOURCE_USERNAME=forman
91+
- SPRING_DATASOURCE_PASSWORD=1234
92+
- EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://eureka-service:12001/eureka/
93+
- KAFKA_BOOTSTRAPSERVERS=kafka:9092 # Kafka 브로커 URL
94+
- SPRING_REDIS_HOST=redis
95+
- SPRING_REDIS_PORT=6379
96+
depends_on:
97+
- postgres-order
98+
- eureka-service
99+
- redis
100+
- kafka
101+
networks:
102+
- service-network
103+
104+
postgres-order:
105+
image: 'postgres:16.4'
106+
environment:
107+
- 'POSTGRES_DB=fortickets'
108+
- 'POSTGRES_PASSWORD=1234'
109+
- 'POSTGRES_USER=forman'
110+
ports:
111+
- '54324:5432'
112+
volumes:
113+
- ../db/order-service:/var/lib/postgresql/data
114+
networks:
115+
- service-network
116+
2117
zipkin:
3118
image: openzipkin/zipkin
4119
ports:
5-
- "9411:9411" # Zipkin UI 접근 포트
120+
- "9411:9411" # Zipkin UI에 접근할 포트
121+
networks:
122+
- service-network
6123

7124
zookeeper:
8-
image: wurstmeister/zookeeper:latest
9-
platform: linux/amd64
125+
image: zookeeper:latest
126+
# platform: linux/amd64
10127
ports:
11128
- "2181:2181"
12129
environment:
13130
ZOOKEEPER_CLIENT_PORT: 2181
14131
ZOOKEEPER_TICK_TIME: 2000
132+
networks:
133+
- service-network
15134

16135
kafka:
17136
image: wurstmeister/kafka:latest
18-
platform: linux/amd64
137+
# platform: linux/arm64/v8
19138
ports:
20139
- "9092:9092"
21140
environment:
@@ -26,61 +145,45 @@ services:
26145
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
27146
volumes:
28147
- /var/run/docker.sock:/var/run/docker.sock
148+
networks:
149+
- service-network
29150

30-
kafka-ui:
31-
image: provectuslabs/kafka-ui:latest
32-
platform: linux/amd64
33-
ports:
34-
- "8080:8080"
35-
environment:
36-
KAFKA_CLUSTERS_0_NAME: local
37-
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:29092
38-
KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181
39-
KAFKA_CLUSTERS_0_READONLY: "false"
40-
41-
151+
# kafka-ui:
152+
# image: provectuslabs/kafka-ui:latest
153+
# platform: linux/amd64
154+
# ports:
155+
# - "8080:8080"
156+
# environment:
157+
# KAFKA_CLUSTERS_0_NAME: local
158+
# KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:29092
159+
# KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181
160+
# KAFKA_CLUSTERS_0_READONLY: "false"
161+
# networks:
162+
# - service-network
42163

43-
redis-stack:
44-
image: redis/redis-stack
45-
container_name: redis-stack-compose
46-
restart: always
47-
environment:
48-
REDIS_ARGS: "--requirepass systempass"
49-
volumes:
50-
- ./redis_data:/data
51164

52-
# Redis 마스터 노드 1
53165
redis:
54-
image: redis:7
166+
image: redis:latest
55167
container_name: redis
56-
# command: [ "redis-server", "--appendonly", "yes", "--requirepass", "systempass" ]
57168
ports:
58169
- "6379:6379"
59170
volumes:
60171
- ./redis_data:/data
61-
62-
prometheus:
63-
image: prom/prometheus
64-
container_name: prometheus
65-
ports:
66-
- "9090:9090"
67-
volumes:
68-
- ./docker-config/prometheus.yml:/etc/prometheus/prometheus.yml # 상대 경로 수정
69-
command:
70-
- '--config.file=/etc/prometheus/prometheus.yml'
71172
networks:
72-
- grafana-network
173+
- service-network
73174

74-
grafana:
75-
image: grafana/grafana
76-
container_name: grafana
77-
ports:
78-
- "3000:3000"
79-
depends_on:
80-
- prometheus
81-
networks:
82-
- grafana-network
175+
# redis-stack:
176+
# image: redis/redis-stack
177+
# container_name: redis-stack-compose
178+
# restart: always
179+
# environment:
180+
# REDIS_ARGS: "--requirepass systempass"
181+
# volumes:
182+
# - ./redis_data:/data
183+
# networks:
184+
# - service-network
185+
186+
# Redis 마스터 노드 1
83187

84188
networks:
85-
grafana-network:
86-
external: false # 내부 네트워크로 설정
189+
service-network:
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# OpenJDK 이미지를 기반으로 이미지 생성
2+
FROM openjdk:17-jdk-slim
3+
4+
# jar 파일을 컨테이너 안에 복사
5+
COPY ../../application/concert-service/build/libs/concert-service.jar /app/concert-service.jar
6+
7+
# 컨테이너 실행 시 jar 파일을 실행하도록 설정
8+
ENTRYPOINT ["java", "-jar", "/app/concert-service.jar"]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# OpenJDK 이미지를 기반으로 이미지 생성
2+
FROM openjdk:17-jdk-slim
3+
4+
# jar 파일을 컨테이너 안에 복사
5+
COPY ../../application/eureka/build/libs/eureka.jar /app/eureka.jar
6+
7+
# 컨테이너 실행 시 jar 파일을 실행하도록 설정
8+
ENTRYPOINT ["java", "-jar", "/app/eureka.jar"]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# OpenJDK 이미지를 기반으로 이미지 생성
2+
FROM openjdk:17-jdk-slim
3+
4+
# jar 파일을 컨테이너 안에 복사
5+
COPY ../../application/gateway-service/build/libs/gateway-service.jar /app/gateway-service.jar
6+
7+
# 컨테이너 실행 시 jar 파일을 실행하도록 설정
8+
ENTRYPOINT ["java", "-jar", "/app/gateway-service.jar"]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# OpenJDK 이미지를 기반으로 이미지 생성
2+
FROM openjdk:17-jdk-slim
3+
4+
# jar 파일을 컨테이너 안에 복사
5+
COPY ../../application/order-service/build/libs/order-service.jar /app/order-service.jar
6+
7+
# 컨테이너 실행 시 jar 파일을 실행하도록 설정
8+
ENTRYPOINT ["java", "-jar", "/app/order-service.jar"]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# OpenJDK 이미지를 기반으로 이미지 생성
2+
FROM openjdk:17-jdk-slim
3+
4+
# jar 파일을 컨테이너 안에 복사
5+
COPY ../../application/user-service/build/libs/user-service.jar /app/user-service.jar
6+
7+
# 컨테이너 실행 시 jar 파일을 실행하도록 설정
8+
ENTRYPOINT ["java", "-jar", "/app/user-service.jar"]

0 commit comments

Comments
 (0)