Spring Boot 및 Spring Cloud를 사용하는 마이크로서비스
게시 됨: 2020-09-04목차
마이크로서비스 소개
마이크로서비스는 복잡한 비즈니스 목표를 달성하기 위해 서로 협력하는 소규모의 자립형 서비스입니다. 이러한 서비스는 독립적이고 완전하므로 다양한 개발 팀에서 다양한 프로그래밍 언어와 데이터 저장소를 사용하여 구축할 수 있습니다. 마이크로서비스는 개별적으로 확장 가능하며 자동으로 배포할 수 있습니다. 유지 관리가 쉽고 모놀리식 서비스에 비해 더 큰 내결함성을 제공합니다. 그러나 그들은 느슨하게 결합되어 더 큰 응용 프로그램의 목표를 달성하기 위해 서로 상호 작용할 수 있습니다.
마이크로서비스 아키텍처를 사용하여 소프트웨어를 구축할 수 있도록 다양한 도구가 시중에 나와 있습니다. Spring Cloud 및 Spring Boot는 널리 사용되는 Java 마이크로서비스 프레임워크입니다.
Spring Boot는 Java 웹 애플리케이션을 개발하는 데 사용되는 Spring 프레임워크를 사용하여 구축된 독자적인 애플리케이션 개발 플랫폼입니다. 동시에 사용자 정의가 가능하며 요구 사항에 따라 구성할 수 있습니다. 이 블로그에서는 스프링 클라우드 자습서 의 기본 측면에 대해 설명합니다.
Spring Boot 및 Spring Cloud를 사용하는 마이크로서비스
이 Spring Cloud 튜토리얼 은 Spring Boot 및 Spring Cloud를 사용하여 간단한 마이크로서비스 애플리케이션을 빌드하는 기본 개요를 제공합니다. 또한 이 튜토리얼은 학습 목표를 달성하는 데 도움이 되는 관련 문서에 대한 링크를 제공합니다. 다음을 수행해야 합니다.
1. Spring Initializer를 사용하여 Spring Boot를 사용하여 새 서비스 생성
Spring Cloud 튜토리얼 에 따르면 첫 번째 단계는 Spring Initializer를 사용하여 프로젝트 구조를 생성하는 것입니다. 이니셜라이저는 프로젝트에 필요한 모든 종속성을 빠르게 추가하는 방법을 제공합니다. 예를 들어 Maven 프로젝트, Java 및 Spring Boot 버전 2.0.0을 선택할 수 있습니다. Maven 프로젝트에는 Java의 패키지 및 클래스와 유사한 그룹 ID 및 Artefact ID가 필요합니다.
예를 들어 Web(웹 애플리케이션 개발 시작), DevTools(애플리케이션 개발 용이), Actuator(앱 모니터링) 및 Config Client(애플리케이션을 Spring Config에 연결)와 같은 종속성을 선택해야 합니다. 섬기는 사람). 모든 옵션을 선택하면 프로젝트가 생성됩니다. 자세한 내용 은 RESTful 웹 서비스 리소스 빌드에서 Spring Initializer로 시작을 참조하세요. 데이터베이스에 연결하는 방법을 배우 려면 Spring Data JPA 를 참조하십시오 .

2. 서비스 이름 지정 및 검색 확인
모든 마이크로서비스는 아키텍처의 다른 서비스에서 찾을 때 이를 검색하기 위해 등록해야 합니다. 예를 들어, 특정 서비스는 특정 환경에서 다시 실행되는 다른 서비스의 모든 인스턴스를 찾기를 원할 수 있습니다. 이번 스프링 클라우드 튜토리얼 l에서는 네이밍 서버가 모든 서비스와 해당 인스턴스에 대한 정보를 저장하고 이를 찾는 사람들에게 정보를 제공한다는 것을 배우게 될 것입니다. 따라서 서비스 발견 과정에 도움이 됩니다. 서비스 등록 및 검색에 대한 자세한 내용은 Spring Cloud 및 Netflix의 Eureka를 사용한 마이크로 서비스 등록 및 검색을 참조하십시오 .

읽기: Spring Boot 프로젝트 및 주제
3. 다른 마이크로서비스 호출
Spring Cloud를 사용하면 다른 구성 요소 및 서비스에 대한 여러 호출이 필요합니다. 이것은 웹 서비스 클라이언트를 더 쉽게 작성할 수 있게 하여 프로세스에서 복잡성을 제거하는 Feign을 사용하여 달성됩니다. 자세한 내용은 Spring Cloud Open Feign 을 참조하십시오 .
4. 로드 밸런싱 확인
이 스프링 클라우드 튜토리얼에 따라 Feign은 클라이언트 측 로드 밸런싱 프레임워크인 Ribbon과의 통합도 제공합니다. 리본은 Feign 구성을 사용하여 호출을 분산하고 다른 서비스가 연결하려는 서비스의 모든 인스턴스 간에 균형을 유지하는 데 도움이 됩니다. 자세한 내용 은 리본 및 스프링 클라우드 를 사용한 클라이언트 측 로드 밸런싱을 참조하십시오.
5. Spring Cloud Config Server를 사용하여 중앙에서 마이크로 서비스 구성 관리
이 스프링 클라우드 자습서 에 따르면 애플리케이션은 여러 마이크로 서비스, 이러한 마이크로 서비스에 대한 여러 환경 및 환경에서 실행되는 이러한 서비스의 다양한 인스턴스를 사용합니다. Spring Configuration Server는 이러한 모든 마이크로서비스 인스턴스와 관련된 구성 정보를 저장할 중앙 위치를 제공합니다.
결과적으로 이 구성은 한 곳에서 사용할 수 있으며 아키텍처의 모든 서비스에서 사용해야 합니다. 구성을 중앙에서 관리하려면 새 서비스와 관련된 속성을 정의한 다음 Git을 코드 저장소로 사용하여 연결된 Spring Config 서버에 연결합니다. 자세한 내용은 Spring 구성 개요 문서를 참조하십시오 . Spring Config와 Git을 연결하는 방법을 배우려면 Spring Cloud Config 를 참조하십시오 .
또한 읽기: 인도의 봄 개발자 급여
6. Spring Cloud로 보안 설정
수백 개의 마이크로 서비스가 함께 작동하는 마이크로 서비스 아키텍처에서는 인증 및 권한 부여를 확인하는 것이 필수적입니다. 보안 외에도 메트릭, 제한 등과 같은 고려 사항이 있습니다. API 게이트웨이를 사용하면 모든 서비스에 공통적인 기능을 구현할 수 있습니다.

예를 들어 Zuul Server는 요청을 처리하고 마이크로서비스 애플리케이션의 동적 라우팅을 수행하는 API 게이트웨이 애플리케이션입니다. 이 스프링 클라우드 자습서 l 에서 자세히 알아보려면 Spring Cloud Gateway 를 참조하십시오 .
7. 내결함성 활성화
마이크로 서비스를 구현하는 동안 중요한 고려 사항은 한 구성 요소가 작동을 멈추면 전체 애플리케이션이 중단될 수 있다는 것입니다. Hystrix 프레임워크는 메서드 호출이 실패할 때 기능을 정상적으로 업그레이드할 수 있는 내결함성 마이크로서비스를 구축하는 데 도움이 됩니다. 이를 통해 관련 서비스가 실패할 때 마이크로 서비스가 계속 작동할 수 있으므로 실패가 연쇄적으로 발생하는 것을 방지하고 실패한 서비스가 복구할 수 있는 시간을 제공합니다.
확인: Spring Bean 라이프 사이클 설명
결론
이 Spring Cloud 튜토리얼 이 시작하는 데 필수적인 출발점이 되기를 바랍니다.
Spring Cloud에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제, IIIT를 제공합니다. -B 동문 상태, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.