이 기사는 Java 마이크로 서비스에 대한 관련 지식을 이해하도록 안내합니다. 수집할 가치가 있습니다!

그림

현재 스프링클라우드 마이크로서비스는 인터넷 기업에 거의 필수 스킬입니다 취업을 준비하는 자바 프로그래머들에게도 자바 마이크로서비스는 매우 중요한 기술 포인트입니다 오늘은 자바 마이크로서비스 중 스프링클라우드를 소개하겠습니다 많은 분들에게 조금이나마 도움이 되었으면 합니다 Java 마이크로 서비스에 대해 알아보십시오!

그림

· 마이크로서비스

마이크로 서비스에 관해서는 많은 프로그래머가 낯설지 않다고 생각합니다.인터넷 기술이 수년 동안 발전한 후 많은 기술 분야에서 성장하는 선댄스를 충족시키기 위해 점점 더 많은 새로운 기술이 등장했으며 그중 마이크로 서비스는 매우 중요한 기술 포인트.

초기 모노머 아키텍처, 클러스터 아키텍처, 분산 아키텍처에서 현재 주류인 마이크로서비스 아키텍처까지, 우선 인터넷 기술 아키텍처의 진화를 몇 장의 사진을 통해 살펴보자.

   · 모놀리식 아키텍처 소개

우리 모두는 인터넷이 처음 발달하기 시작했을 때 사용자 수가 매우 적었고 인터넷에 액세스할 수 있는 사람이 극히 제한적이었다는 것을 알고 있습니다. 하나의 서버와 하나의 데이터베이스.

그림

 · 클러스터 아키텍처 소개

그 직후, 인터넷의 발달과 사용자의 증가(즉, 컴퓨터를 가지고 놀 수 있는 사람들의 증가)로 인해 원래의 단일 구조로는 이렇게 많은 사용자 방문을 지원할 수 없게 되었습니다. 웹사이트는 항상 실행되고 있습니다 끊으세요, 이 수업은 어때요 사장님이 이를 악물고 발을 구르며 서버 한 대가 부족하고 서버 몇 대를 더 추가하여 인터넷의 기술 아키텍처가 클러스터 아키텍처가 되었습니다. 사고.

그림

 · 분산 아키텍처 소개

원래 모든 것이 우주가 조화롭게 조화를 이루고 있는 것처럼 조용하게 진행되고 있었고, 사용자들은 인터넷 속도가 치솟는 것을 느꼈고, 사장님들도 우리의 아이디어가 세상을 바꿀 수 있을 정도로 대단하다고 느꼈습니다. 예기치 않게 인터넷은 갑자기 전례없는 발전을 가져 왔습니다. 수년 전 한 노인이 남중국해에 원을 그렸기 때문입니다.

이때 모든 기술자들이 가만히 있지 못하고 웹사이트가 항상 막히면 어떡하지, 추가 서버로는 전혀 문제를 해결할 수 없다는 생각에 이전 업체들이 모두 같은 서버에 있기 때문에, 매우 복잡합니다. 이때 이전에 함께 결합되어 있던 사업이 주문 모듈, 사용자 모듈 등으로 분리되기 시작했고, 이러한 방식으로 인터넷의 기술 아키텍처도 진화할 것입니다.

그림

 · 마이크로서비스 아키텍처의 등장

원래 분산 아키텍처는 현재의 인터넷 발전을 기본적으로 충족하고 모든 것이 너무 조용하게 진행되지만 큰 공장은 결코 그렇게 평화롭지 않고 여전히 혁신 중이며 효율성을 더욱 향상시키고 싶어하므로 비즈니스 단위에서 분해됩니다. 그러나 여전히 대형 제조업체의 요구 사항을 충족할 수 없기 때문에 비즈니스가 세분화되어 각 서비스를 독립적으로 배포할 수 있습니다.

그림

 · 스프링 클라우드 소개

뭐, 기본적으로 인터넷의 기술 아키텍처의 진화에 대해서는 모두들 알고 계시겠지만, 최종적으로 마이크로서비스를 구현하는 기술은 다음에 소개해드릴 스프링클라우드입니다.

SpringCloud는 마이크로 서비스 아키텍처의 마스터이며 일련의 우수한 구성 요소(hodgepodge)를 통합했으며 중국의 많은 대기업, 중소 기업에서 실제 적용 사례를 보유하고 있습니다. 현재 많은 회사의 비즈니스 라인이 모두 Spring Cloud를 채택하고 있으며 일부 회사는 부분적으로 Spring Cloud를 채택하고 있습니다.

봄 구름의 장점과 단점

이점:

1. 커플링이 작고 다른 모듈의 개발에 영향을 미치지 않습니다.

2. 팀 개발 비용을 줄이고 다른 사람의 개발 방식에 신경 쓰지 않고 병렬 개발을 달성할 수 있습니다.

3. 너무 많은 구성 파일을 사용하지 않고 기본적으로 주석을 사용하여 구성이 비교적 간단합니다.

4. 마이크로서비스는 크로스 플랫폼이며 모든 프로그래밍 언어를 사용할 수 있습니다.

5. 각 마이크로서비스는 독립적인 데이터베이스를 사용하거나 동일한 데이터베이스를 공유할 수 있습니다.

6. 프론트엔드 개발 방식에 신경쓰지 않고 백엔드 코드를 직접 작성한 후 인터페이스를 노출하고 컴포넌트를 통해 서비스 간 통신

결점:

1. 배포가 더 번거로워 운영 및 유지 보수 엔지니어에게 특정 문제가 발생합니다.

2. 각 마이크로 서비스가 자체 독립 데이터베이스를 사용할 수 있기 때문에 데이터 관리가 더 번거롭습니다.

3. 시스템 통합 테스트가 번거롭다

4. 성능 모니터링이 번거롭다

Spring Cloud의 애플리케이션 시나리오

1. 복잡한 비즈니스 시나리오에 적용 가능 : 특히 대기업의 경우 마이크로 서비스 아키텍처는 복잡한 비즈니스를 여러 서비스로 분할하여 시스템의 유연성과 유지 관리성을 향상시킬 수 있습니다. 예를 들어 은행, 보험, 통신 및 기타 산업은 비즈니스 반복성이 높지만 사용자, 주문, 계정 및 결제와 같은 여러 서비스를 구분해야 합니다.

2. 트래픽이 많고 동시성이 높은 비즈니스 시나리오에 적용 : 일반적으로 트래픽이 많고 동시성이 높은 것은 시스템의 기술적 과제입니다.기존 단일 아키텍처에서는 데이터 양이 많고 요청이 빈번한 경우 쉽습니다. 시스템 충돌을 일으킬 수 있습니다. 마이크로 서비스 아키텍처를 통해 서로 다른 서버에 서로 다른 서비스를 배포할 수 있으므로 각 서비스에 대한 부담이 줄어들고 시스템의 안정성과 신뢰성이 향상됩니다. 예를 들어 전자 상거래 및 온라인 여행과 같은 산업은 사용자 방문 수가 많고 사용자 요청에 실시간으로 응답해야 합니다.마이크로 서비스 아키텍처는 높은 동시성 비즈니스 시나리오를 지원할 수 있습니다.

3. 다중 플랫폼 및 다중 터미널 비즈니스 시나리오에 적용 가능 : 현대 기업은 일반적으로 웹, 모바일 및 데스크톱과 같은 다양한 터미널에 서비스를 타겟팅해야 합니다. 마이크로 서비스 아키텍처를 사용하면 서로 다른 서비스를 서로 다른 터미널에 적용할 수 있으며 동시에 Restful API를 사용하여 데이터 지원을 제공하는 것과 같은 다양한 교차 플랫폼 통합을 지원할 수 있습니다. 예를 들어, 스마트 홈, 전자상거래 등의 산업은 다양한 멀티 터미널 애플리케이션을 지원해야 하며, 마이크로 서비스 아키텍처를 사용하면 다양한 터미널에 대한 서비스를 쉽게 제공할 수 있습니다.

요약: Spring Cloud 기반 마이크로서비스 아키텍처는 복잡한 비즈니스 시나리오, 대규모 트래픽, 높은 동시성 비즈니스 시나리오 및 다중 플랫폼, 다중 터미널 비즈니스 시나리오에 적합합니다. 다른 기업의 경우 특정 애플리케이션 시나리오가 다를 수 있지만 마이크로서비스 아키텍처를 채택하면 기업 정보 기술 개발을 위한 더 많은 선택과 솔루션을 제공할 수 있습니다.

Springcloud 컴포넌트 소개

뒤죽박죽이라고 하는 이유는 마이크로서비스 아키텍처에서 요구하는 모든 기술적인 구성요소를 거의 다 다루고 있기 때문에 아래의 사진을 통해서도 느낄 수 있다.

그림

Spring Cloud에는 많은 구성 요소가 있으며 계속 확장 중이므로 몇 가지 주요 구성 요소를 소개합니다.

  • Eureka : 서비스 등록 및 검색을 포함한 서비스 거버넌스 구성 요소

  • Feign : 선언적 서비스 호출 구성 요소

  • 리본 : 클라이언트 부하 분산을 위한 서비스 호출 구성 요소

  • Hystrix : 퓨즈를 구현하는 내결함성 관리 구성 요소

  • Zuul : 지능형 라우팅, 액세스 필터링 및 기타 기능을 제공하는 게이트웨이 구성 요소

  • Config : 구성 파일을 통합하는 데 사용되는 분산 구성 센터 구성 요소

핵심 구성 요소가 너무 많아 마이크로 서비스 시스템 아키텍처를 쉽게 구축할 수 있습니다.이 모든 것이 생태계 내의 기술이기 때문에 많은 기술이 호환되므로 개발의 문이 크게 줄어들므로 이제 기본적으로 인터넷입니다.회사의 마이크로 서비스 아키텍처 채택되었으므로 이러한 구성 요소를 하나씩 살펴보겠습니다.

 ·  유레카 서비스 거버넌스 구성 요소

Eureka는 Netflix에서 개발한 서비스 거버넌스 프레임워크로 REST 기반의 서비스로 서비스 간 등록 검색 및 로드 밸런싱에 주로 사용됩니다.

그림

 ·  Feign 선언적 서비스 호출 구성 요소

Feign은 선언적 웹 서비스 클라이언트, 로드 밸런싱된 HTTP 클라이언트입니다. Feign을 사용하여 API를 호출하는 것은 일반적으로 함께 구현되는 대상 마이크로 서비스를 호출할 때 json 데이터를 지속적으로 구문 분석/캡슐화하는 지루한 작업을 피하는 로컬 메서드를 호출하는 것과 같습니다. 리본.

그림

 ·  리본 부하 분산 구성 요소

리본은 HTTP와 TCP 기반의 클라이언트 측 부하 분산 도구이며, Feign에서 제공하는 선언적 서비스 호출도 이 리본을 기반으로 구현됩니다. Ribbon은 기본적으로 라운드 로빈, 랜덤 등과 같은 많은 로드 밸런싱 알고리즘을 제공합니다. 필요에 따라 로드 밸런싱 전략을 사용자 정의할 수도 있습니다.

그림

 ·  Hystrix 퓨즈 전류 제한 부품

Hystrix 구성 요소는 특정 기능을 구현하지 않을 수 있기 때문에 다소 복잡합니다.그 주요 역할은 시스템의 고가용성과 안정성을 향상시키는 것입니다.분산 시스템 환경에서 서비스 간의 다양한 종속성, 비즈니스 호출은 일반적으로 다중 기반 서비스는 매우 일반적입니다. Hystrix는 모니터링 서비스 및 서비스 내결함성 역할을 하며 문제를 제때 처리하지 않으면 눈사태가 발생할 수 있으며 그 결과는 재앙이 될 수 있습니다.

그림

 ·  Zuul 서비스 게이트웨이 구성요소

Zuul은 마이크로서비스 API 게이트웨이이자 사용자 액세스를 위한 첫 번째 게이트웨이입니다. 모든 사용자 요청은 Zuul을 통과하여 백엔드 애플리케이션에 도달합니다. Zuul은 동적 라우팅, 모니터링, 탄력적 로드 및 보안 기능을 제공합니다. Zuul의 최하위 계층은 다양한 필터를 사용하여 다음과 같은 기능을 수행합니다.

  • 인증 및 보안 - 인증이 필요한 각 리소스를 식별하고 요구 사항을 충족하지 않는 요청을 거부합니다.

  • 서비스 경계에서 성능 모니터링 , 추적 및 통계를 통해 생산에 대한 정확한 보기를 제공합니다.

  • 동적 라우팅 , 필요에 따라 요청을 백엔드 클러스터로 동적으로 라우팅합니다.

  • 스트레스 테스트 , 성능을 이해하기 위해 클러스터에 대한 트래픽을 점진적으로 증가시킵니다.

  • 각 유형의 요청에 대해 용량을 사전 할당하고 용량을 초과하면 요청을 자동으로 삭제하는 로드 차단 .

  • 정적 리소스 처리 , 경계에서 직접 특정 응답을 반환합니다.

따라서 게이트웨이 수준에서 코어 라우팅 기능 외에도 전류 제한 수단이기도 합니다.

그림

 ·  구성 분산 구성 센터 구성 요소

Config는 분산 시스템을 위한 구성 관리 솔루션입니다. 클라이언트와 서버의 두 부분으로 구성됩니다. 서버는 구성 파일의 저장소를 제공하고 구성 파일의 내용을 인터페이스 형식으로 제공합니다. 클라이언트는 인터페이스를 통해 데이터를 얻고 이 데이터를 기반으로 자체 애플리케이션을 초기화합니다. 또한 직장에서 Ctrip의 오픈 소스 Apollo와 함께 자주 사용됩니다.

그림

자, 여기 SpringCloud의 몇 가지 핵심 구성 요소에 대한 기본 소개가 있습니다.이 핵심 구성 요소를 얻으면 기본적으로 마이크로 서비스의 핵심 지식을 얻을 수 있습니다!

Supongo que te gusta

Origin blog.csdn.net/xishining/article/details/131778912
Recomendado
Clasificación