본문 바로가기

MSA4

Spring Cloud Bus Spring Cloud Bus 는 분산 시스템 환경, 마이크로서비스 환경에서 각각의 노드나 서비스를 연결시켜주는 경량 메시지 브로커이다. 또는 Spring cloud bus는 동적으로 config 변경을 적용하기 위한 MQ(Message Queue) Handler이다. config가 변경되면 각 마이크로서비스는 최신 값을 갖고 오기 위해 POST로 http[s]://{microservice host}/actuator/refresh를 해줘야 한다. 이 작업을 자동화할 수도 있으나, config server가 각 마이크로서비스의 주소를 모두 관리해야 하니 비효율적이다. 즉, actuator refresh 기능은 매 어플리케이션 서비스마다 각각 실행 시켜줘야해서 불편한데 스프링 클라우드 버스 기능으로 한 번에.. 2022. 8. 30.
io.jsonwebtoken.SignatureException: JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted. 에러 해결 마이크로서비스(user-service)와 apigateway 서비스를 사용하던중에 RestTemplate 을 적용하고 api 요청을 테스트하는데 user-service를 apigateway 서비스에 등록한데로 get방식이 요청안됐다. apigateway-service의 application.yml에 get방식은 AuthorizationHeaderFilter를 거치도록 등록해놨다. spring: application: name: apigateway-service rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: guest cloud: gateway: default-filters: - name: GlobalFilter # GlobalFilter .. 2022. 8. 30.
API Gateway Service 사용(Spring Cloud Gateway + Eureka) Spring Cloud Gateway와 Eureka를 이용해서 API Gateway Service를 실행해보자 그렇기 위해선 FirstService와 SecondService, apigateway-service를 discovery service(Eureka)에 등록해야한다. 클라이언트가 " http://localhost:8080/first-service/welcome "로 요청을 보내면 API Gateway가 먼저 받는다. 이제 API Gateway는 " /first-service/** " 이하는 어떤 uri로 가야하는지 discovery service에게 물어보고 discovery service가 어떤 IP 주소와 포트로 가야하는지 알려주면 API Gateway는 해당 주소로 요청을 보내게 된다. 우선.. 2022. 8. 17.
Cloud Native Application Cloud Native Architecture 특징 확장 가능한 아키텍처 시스템의 수평적 확장 시스템 부하 분산, 가용성 보장 서비스 어플리케이션 단위 패키지 (컨테이너 기반 패키지) 모니터링 탄력적 아키텍처 어플리케이션의 각기능을 서비스로 생성 - 통합 - 배포을 CI/CD자동화 파이프라인을 통해 처리, 환경 변화 대응시간 단축 작게 분리된 독립적인 서비스들이 분할된 구조 무상태 통신 프로토콜, 종속성 최소화 서비스 추가와 삭제 자동으로 감지 변경된 서비스 요청에 따라 사용자 요청 처리 (동적 처리) 장애 격리 특정 오류가 나더라도 다른 서비스에 영향을 주지 않는다. Cloud Native Application 지속적인 통함, CI(Continuous Integration) 결과물을 통합하기위한 형상관.. 2022. 8. 10.