Spring Cloud with Apache Kafka - 4

최혜성·2024년 1월 18일
0

msa

목록 보기
4/7

Cont.

어제 이어서 작동하는 모습을 확인했다.
Eureka에서 각 API를 가져오는데 보통 HeartBeat 체크 주기인 30초 정도가 소요된다고 한다.

그래서 좀 기다리니까 각 서버로 Routing되는 모습을 확인함

  • User Server 1
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
  • User Server 2
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 되는 모습을 확인할 수 있음.

로드 밸런서 쉽네~

해당 로드밸런싱 로직도 따로 구성할 수 있는걸로 알고 있는데 요거는 차차 알아가 보기로.

Actuator

얘는 각 스프링의 빈이나 상태를 확인할 수 있는 모니터링 툴이라고 생각하면 될듯.

기존 스프링을 Intellij에서 실행할때 상태 확인하는 부분에 있었는데 JMX Agent랑 얘 활성화 안됐다고 메시지 뜬적 있음.

활성화 해 보니 Bean 목록등이랑 여러가지 확인할 수 있는데, 이를 통해 각 Config Refresh가 가능함.

그래서 Spring Cloud Config 관련해서 Cloud Bus나 Actuator를 이용하는 방법이 있음

Cloud Bus는 RabbitMQ 써서 한방에 싹다 refersh하는 방법인데 추후 Kafka 적응되면 얘로도 되나 테스트 할예정

So what?

라우팅도 됐겠다 User API와 Event API를 구현하고 가능하다면 Rough하게 Reservation 엔티티까지 만들어 kafka 연동까지 테스트 해보고자 한다.

User API

Server-1

Server-2

두개 서버 와리가리 잘 하는 모습

@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랑 차차 카프카 설정하기

profile
KRW 채굴기

0개의 댓글