2024. 6. 5. 15:08γProject
π νλ‘μ νΈ κ°μ
- λͺ©μ : Redisμ Kafkaλ₯Ό μ¬μ©νμ¬ μ€μκ° λμ©λ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ Spring Boot λ°±μλμ React νλ‘ νΈμλ ν νλ¦Ώμ μ 곡ν©λλ€.
- λμ: μ€μ νμ μμλ κ²½ννκΈ° μ΄λ €μ΄ λμ©λ μ²λ¦¬λ₯Ό ν μ€νΈνκ³ μ νλ κ°λ°μλ€μ μν ν νλ¦Ώμ λλ€.
- ν¨κ³Ό: μ€μκ° λ°μ΄ν° μ²λ¦¬ λ° λΆν ν μ€νΈλ₯Ό ν΅ν΄ λμ©λ μ²λ¦¬ μμ€ν μ κ°μ μ μΌλ‘ κ²½νν μ μμ΅λλ€.
π§ μ¬μ© κΈ°μ
κ΅¬λΆ | κΈ°μ |
---|---|
λ°±μλ | Spring Boot, Redis, Kafka |
νλ‘ νΈμλ | React |
κΈ°ν | Apache JMeter, Docker, Socket |
π οΈ μ¬μ μ€λΉ
μ°μ μλ μννΈμ¨μ΄λ₯Ό μ€μΉν νκ²½μ ꡬμ±ν©λλ€.
- Docker
- Docker Compose
- JDK 17+
- Apache JMeter (λΆν ν μ€νΈμ©)
- Eclipse (Spring Boot, React νλ‘μ νΈ μΈν νμ)
νλ‘κ·Έλ¨ μ€μΉ κ³Όμ κ³Ό Spring Boot/React μΈν μ μλ΅ν©λλ€. λ€λ₯Έ κΈμ μ°Έκ³ λ°λλλ€.
βοΈ νλ‘μ νΈ νκ²½ μΈν
πΉ λ컀λ₯Ό μ΄μ©ν Redis, Kafka νκ²½ ꡬμ±
1. docker-compose.yml μμ±
νλ‘μ νΈ ν΄λ μλμ docker-compose.yml
νμΌμ μμ±ν©λλ€. μ΄ νμΌμ Docker Composeλ₯Ό μ¬μ©νμ¬ μ¬λ¬ 컨ν
μ΄λ μλΉμ€λ₯Ό μ€μ ν©λλ€.
services:
zookeeper:
image: bitnami/zookeeper:latest
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
ports:
- "2181:2181"
kafka:
image: bitnami/kafka:latest
ports:
- "9092:9092"
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
- KAFKA_BROKER_ID=1
depends_on:
- zookeeper
redis:
image: redis:latest
ports:
- "6379:6379"
app:
build: .
ports:
- "8080:8080"
depends_on:
- redis
- kafka
- zookeeper
environment:
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_KAFKA_BOOTSTRAP_SERVERS=kafka:9092
2. Dockerfile μμ±
νλ‘μ νΈ ν΄λ μλμ Dockerfile
νμΌμ μμ±ν©λλ€.
# Use the official Maven image with OpenJDK 17 to build the application
FROM maven:3.8.4-openjdk-17 AS build
WORKDIR /app
COPY . .
RUN mvn clean package -DskipTests
# Use the official OpenJDK image to run the application
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
Dockerfileμ λ λ¨κ³λ‘ ꡬμ±λ λ©ν°μ€ν μ΄μ§ λΉλλ₯Ό μ¬μ©ν©λλ€.
- λΉλ λ¨κ³: Mavenκ³Ό OpenJDK 17μ μ¬μ©νμ¬ μ ν리μΌμ΄μ μ λΉλν©λλ€.
- μ€ν λ¨κ³: μ¬λ¦Όν OpenJDK μ΄λ―Έμ§λ₯Ό μ¬μ©νμ¬ λΉλλ JAR νμΌμ μ€νν©λλ€. μ΄λ μ΄λ―Έμ§ ν¬κΈ°λ₯Ό μ€μ΄κ³ , μ€ν νκ²½μ κ°μνν©λλ€.
3. Docker λΉλ
docker-compose.ymlμ΄ μλ ν΄λλ‘ μ΄λνμ¬ λͺ λ Ήμ΄λ₯Ό μ€νν©λλ€.
docker-compose up --build
μλ λͺ λ Ήμ΄λ‘ λͺ¨λ 컨ν μ΄λκ° μ μμ μΌλ‘ μ€νλλμ§ νμΈν©λλ€.
docker-compose ps
πΉ Spring Boot νκ²½ μ€μ
Dockerμμ μ€μ ν Redisμ Kafkaμ Spring Bootκ° ν΅μ κ°λ₯νλλ‘ ν¬νΈλ₯Ό μ€μ ν©λλ€.
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.kafka.bootstrap-servers=127.0.0.1:9092
π μ 체 μμ€μ½λ
GitHubμμ μ 체 μμ€μ½λλ₯Ό νμΈν μ μμ΅λλ€: GitHub - sonhoil/Largevolume: λμ©λ μ²λ¦¬ μμ€ν ν μ€νΈ νκ²½ ꡬν νλ‘μ νΈ
'Project' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λμ©λ μ²λ¦¬ ν μ€νΈ ꡬν νλ‘μ νΈ - 3 (JMeter ν μ€νΈ) (0) | 2024.06.10 |
---|---|
λμ©λ μ²λ¦¬ ν μ€νΈ ꡬν νλ‘μ νΈ - 2 (μ½λ μμ±) (0) | 2024.06.05 |