어제 이어서 작동하는 모습을 확인했다.
Eureka에서 각 API를 가져오는데 보통 HeartBeat 체크 주기인 30초 정도가 소요된다고 한다.
그래서 좀 기다리니까 각 서버로 Routing되는 모습을 확인함
2024-01-18T11:08:46.840+09:00 INFO 16928 --- [user-api] [o-auto-1-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
Handle Request
2024-01-18T11:08:55.003+09:00 INFO 6652 --- [user-api] [o-auto-1-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
Handle Request
동일한 서버가 2개 켜져 있어서 각 서버로 Load Balancing 되는 모습을 확인할 수 있음.
로드 밸런서 쉽네~
해당 로드밸런싱 로직도 따로 구성할 수 있는걸로 알고 있는데 요거는 차차 알아가 보기로.
얘는 각 스프링의 빈이나 상태를 확인할 수 있는 모니터링 툴이라고 생각하면 될듯.
기존 스프링을 Intellij에서 실행할때 상태 확인하는 부분에 있었는데 JMX Agent랑 얘 활성화 안됐다고 메시지 뜬적 있음.
활성화 해 보니 Bean 목록등이랑 여러가지 확인할 수 있는데, 이를 통해 각 Config Refresh가 가능함.
그래서 Spring Cloud Config 관련해서 Cloud Bus나 Actuator를 이용하는 방법이 있음
Cloud Bus는 RabbitMQ 써서 한방에 싹다 refersh하는 방법인데 추후 Kafka 적응되면 얘로도 되나 테스트 할예정
라우팅도 됐겠다 User API와 Event API를 구현하고 가능하다면 Rough하게 Reservation 엔티티까지 만들어 kafka 연동까지 테스트 해보고자 한다.
두개 서버 와리가리 잘 하는 모습
@RestControllerAdvice
class MemberExceptionHandler {
@ExceptionHandler(MemberException::class)
fun handleMemberException(e : MemberException) : ResponseEntity<Response<Nothing>> {
return ResponseEntity.badRequest().body(Response.of(false, e.message, null))
}
}
{"success":false,"message":"존재하지 않는 유저입니다."}
따로 설정한 Exception Handler로 각 서버마다 잘 작동하는 모습.
내일은 이어서 Event API랑 차차 카프카 설정하기