본문 바로가기

Spring cloud4

2024-05-26(배포, docker-compose, Spring Cloud, Github Actions) 이번 캡스톤 프로젝트에서 배포를 맞게 되었고Spring Cloud를 처음 사용해보며 여러 작업을 하고 있다.docker-compose를 이용하여 컨테이너가 같은 도커 네트워크 환경을 공유할 수 있도록 하였고 MSA의 장점에 걸맞게 스케일 아웃했을 때 서버가 중단되지 않고 배포가 되는무중단 배포를 위해 Makefile를 제작하였다.(필자의 생각에 근거하여 Makefile을 작성하였기 때문에 이게 옳은 방법이라곤 할 수 없다.)  Makefile 초안(지금은 조금 다름).PHONY: up downup: docker-compose pull docker-compose up -d zookeeper kafka discovery-service gateway-service redis-user .. 2024. 5. 26.
OpenFeign과 Spring Cloud Gateway간의 순환 참조 오류 🐞 버그 설명 OpenFeign과 Spring Cloud Gateway를 함께 사용했을 때 Bean 순환 참조가 오류가 발생했습니다. 로그를 보니 FeignClient와 Gateway Router 부분에서 해당 문제가 발생한 것 같습니다.(로그 참고) 처음엔 그냥 의존성 주입 코드에 문제가 있는 줄 알았으나 코드상의 문제는 없었습니다. Gateway가 아닌 일반 서비스에서는 OpenFeign 사용에 문제가 없었으며 관련 설정에도 문제가 없었습니다. 또한, OpenFeign과 설정에서 같은 user-service 키워드를 사용하기에 해당 부분을 수정하였음에도 해결되지 않았습니다. AuthFeignClient 인터페이스 @FeignClient(name = "auth-service") @Qualifier("A.. 2024. 4. 3.
[Spring Cloud] Spring에서 MSA를 구축해보자 우리는 Spring에서 지원해주는 프레임워크 중 하나인 Spring Cloud를 활용하여 이전에 살펴본 MSA를 구현해볼 수 있다. Spring Cloud Netflix 스프링 클라우드 넷플릭스는 Spring Boot Application에 관한 통합 환경 구성을 지원하는 Netflix의 OSS 서비스이다. OSS: 오픈 소스 소프트웨어 Netflix OSS와 Spring Cloud Netflix Netflix OSS에는 다양한 서비스들이 존재한다. 각각에 관해 간략히 알아보자. Eureka : Discovery Server 각각의 서비스 인스턴스들이 동적으로 확장, 축소 되더라도 인스턴스의 상태를 하나의 서비스로 관리할 수 있는 서비스 Ribbon: Client Side Load Balancer 부하 .. 2024. 3. 27.
Spring Cloud란? Spring Cloud 란? Spring Cloud 란 Microservices의 개발, 빌드, 배포, 운영에 필요한 아키텍처를 쉽게 구성할 수 있게 도와주는 Spring Boot 기반 프레임워크 이다. (Spring Cloud를 사용하려면 Spring Boot는 필수라고 한다) Spring Cloud를 이용하면 MSA를 위한 환경설정, 서비스 검색, 라우팅, 프록시 등 분산 시스템을 빠르게 설정이 가능하다. Spring Cloud를 이용한 어플리케이션 개발시 자주 사용되는 기술 환경 설정은 Spring Cloud Config Server를 통해 개발을 하며 이를 통해 다양한 Microservices에서 사용하는 설정 정보들을 Git에 집어 넣을 수 있다. -> Microservices가 변경돼도 빌드 .. 2024. 3. 7.