- Today
- Total
목록message (3)
개발하는 고라니
specification] spring boot - 2.6.3 서론 API를 만들면 종종 Exception이 발생하기 마련이다. Client에서 요청을 했는데, 예외가 발생했을 때 구체적이고 명시적으로 어떤 에러, 무엇 때문에 발생했는지를 "message"에 담아서 보낸다. fun validateMoney(money: BigDecimal) { if (money < BigDecimal(0)) { throw MinusMoneyException("금액이 음수입니다. money : $money") } } 하지만, 그간 무심코 넘어갔지만 에러 메세지를 확인해보려니 다음과 같이 발생한 적이 있을 것이다. { "timestamp": "2023-02-27T08:43:33.081+00:00", "status": 500,..
Spring Boot 환경에서 RabbitMQ로 메세징 해보는 간단한 예제이고, 원본은 spring.io의 docs이다. 이 예제를 구현해보기 위해 RabbitMQ가 설치되어있어야 한다( 혹은 docker로 가능). 이 예제는 AMQP RabbitMQ Server를 설정하는 과정을 겪을 수 있고, 메세지를 발행(pub)과 소비(sub)하고 스프링부트 어플리케이션을 만들어 RabbitMQ 서버와 상호작용한다. Spring AMQP(Advanced Message Queuing Protocol)의 RabbitTemplage을 사용함으로써 메세지를 발행(pub)하고, MessageListenerAdapter를 사용해 POJO(Plain Old Java Object) 형태의 메세지를 소비(sub)하는 어플리케이션..
Topics 패턴(주제)에 기반한 메세지만 받아보기 이전 튜토리얼에서 logging System을 개선했다. * 요약 - before : 하나의 producer -> 하나의 exchange (fanout) -> 여러개의 Queue -> 각 Queue에 모든 메세지 push -> 모든 consumer 동일한 메세지 수신 - after : 하나의 producer -> 하나의 exchange (direct) -> 여러개의 Queue -> 각 Queue마다 원하는 severity의 메세지 push -> 각 consumer가 받아보는 메세지가 다를 수 있음 'fanout' 타입의 교환자는 오직 가짜 방송을 할 수 있는 대신, 우리는 'direct' 타입의 교환자를 사용했고, 선택적으로 log를 수신하는 가능성을 ..