본문 바로가기

개발일지/MSA 및 api gateway4

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.
Spring Cloud Config Spring Cloud Config 는 분산 시스템에서 설정 정보(application.yml) 를 외부에 보관할 수 있도록 지원해주는 서비스이다. 이러한 Spring Cloud Config 를 이용했을 때 얻을 수 있는 장점은 다음과 같다. 여러 서버의 설정 파일을 중앙 서버에서 관리할 수 있다. 각 서비스(서버)를 재배포 하지 않고 설정 파일의 변경사항을 반영할 수 있다. 애플리케이션 배포 파이프라인을 통해 DEB-UAT-PROD 환경에 맞는 구성 정보 사용가능 실제로 설정파일이 저장되는 Config 저장소(Git Repository, File System 등)가 있고, 이러한 저장소와 연결되어 설정파일을 관리해주는 Spring Cloud Config Server 가 있다. 마지막으로 Spring C.. 2022. 8. 22.
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.