Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions src/backend/auth_server/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Azul Zulu JDK 17 기반 이미지 사용
FROM azul/zulu-openjdk:17

# 작업 디렉토리 설정
WORKDIR /app

# 빌드된 JAR 파일 복사
ARG JAR_FILE=build/libs/auth_server-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar

# 애플리케이션 실행
ENTRYPOINT ["java", "-jar", "app.jar"]
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ public void configureMessageBroker(MessageBrokerRegistry config) {

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws-connect") //handShake과정에서 사용할 endpoint
.setAllowedOriginPatterns("*") // cors
registry.addEndpoint("/ws-connect") // STOMP WebSocket 엔드포인트
.setAllowedOriginPatterns("*") // CORS 허용
.withSockJS(); // SockJS 활성화
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,9 @@
import org.springframework.messaging.handler.annotation.DestinationVariable;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping
@RequiredArgsConstructor
public class ChatController {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,32 +1,42 @@
package com.jootalkpia.chat_server.service;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.jootalkpia.chat_server.dto.ChatMessageResponse;
import com.jootalkpia.chat_server.dto.ChatMessageToKafka;
import com.jootalkpia.chat_server.dto.MinutePriceResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.messaging.simp.SimpMessageSendingOperations;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Service;

@Service
@Slf4j
@RequiredArgsConstructor
public class KafkaConsumer {

private final ChatService chatService;
private final ObjectMapper objectMapper;
private final SimpMessagingTemplate messagingTemplate; // SimpMessagingTemplate 주입
private final SimpMessageSendingOperations messagingTemplateBroker; // 내부 메시지 브로커 사용

@KafkaListener(
topics = "${topic.minute}",
groupId = "${group.minute}"
)
public void processMinutePrice(String kafkaMessage) {
log.info("message ===> " + kafkaMessage);

ObjectMapper mapper = new ObjectMapper();

log.info("Received Kafka message ===> " + kafkaMessage);
try {
MinutePriceResponse minutePriceResponse = mapper.readValue(kafkaMessage, MinutePriceResponse.class);
MinutePriceResponse stockUpdate = objectMapper.readValue(kafkaMessage, MinutePriceResponse.class);
String stockDataJson = objectMapper.writeValueAsString(stockUpdate);

messagingTemplateBroker.convertAndSend("/subscribe/stock", stockDataJson);

//웹소켓 전달하는 로직 or 전달하는 함수
log.info("Broadcasted stock data via WebSocket: " + stockDataJson);

log.info("dto ===> " + minutePriceResponse.toString());
} catch (Exception ex) {
log.error(ex.getMessage(), ex); // 추후에 GlobalException 처리
log.error("Error processing stock message: " + ex.getMessage(), ex);
}
}

Expand All @@ -36,7 +46,7 @@ public void processMinutePrice(String kafkaMessage) {
concurrency = "2"
)
public void processChatMessage(String kafkaMessage) {
log.info("message ===> " + kafkaMessage);
log.info("Received Kafka message ===> " + kafkaMessage);

ObjectMapper mapper = new ObjectMapper();

Expand Down
2 changes: 1 addition & 1 deletion src/backend/chat_server/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ spring:
jpa:
show-sql: true
hibernate:
ddl-auto: update
ddl-auto:
properties:
hibernate:
format_sql: true
Expand Down