> Java > java지도 시간 > springCloud의 Eureka 사례에 대한 심층 분석

springCloud의 Eureka 사례에 대한 심층 분석

无忌哥哥
풀어 주다: 2018-07-20 11:30:22
원래의
3124명이 탐색했습니다.

1. springcloud에 대한 첫 소개

마이크로서비스는 아키텍처 접근 방식이므로 궁극적으로 기술 아키텍처를 구현해야 합니다.

마이크로서비스를 구현하는 방법에는 여러 가지가 있지만 가장 인기 있는 방법은 Spring Cloud입니다.

Spring의 가장 뛰어난 점은 통합입니다. 세계 최고의 프레임워크를 가져와 자신의 프로젝트에 통합하는 것입니다.

Spring Cloud도 마찬가지입니다. 현재 가장 널리 사용되는 기술 중 일부를 통합하고 구성 관리, 서비스 검색, 지능형 라우팅, 로드 밸런싱, 퓨즈, 제어 버스, 클러스터 상태 등과 같은 기능을 구현합니다. 주요 구성 요소는 다음과 같습니다:

  • Eureka: 등록 센터

  • Zuul: 서비스 게이트웨이
  • Ribbon: 로드 밸런싱

  • Feign: 서비스 콜

  • Hystix: 퓨즈

오늘은 주로 springcloud의 등록센터인 Eureka에 대해 알아봅니다.

여기는 life example 예:

온라인 차량호출이 등장하기 전에는 사람들이 차량을 부르러 나갈 때만 택시를 부를 수 있었습니다. 일부 개인 차량은 렌트를 원하지만 자격이 없어 블랙카라고 불립니다. 많은 분들이 택시를 예약하고 싶어하지만 아쉽게도 택시 수가 너무 적어 불편합니다. 개인 차량이 많지만 감히 멈출 수 없으며, 거리의 차량 중에서 어느 차량이 사람을 기꺼이 태우는지 알 수 없습니다. 한 사람은 원하고 다른 사람은 기꺼이 주지만 소개와 관리가 부족합니다.

이제 Didi와 같은 온라인 차량 공유 플랫폼이 등장했습니다. 승객을 태우고 싶은 모든 자가용은 Didi에 등록해야 하며, 차량 모델(서비스 유형)과 신원 정보(연락처 정보)를 기록해야 합니다. 이러한 서비스를 제공하는 자가용 차량은 디디(Didi)에서 찾아볼 수 있으며, 한눈에 확연히 눈에 띕니다.

지금 차량을 부르고 싶은 분은 앱을 열어 목적지를 입력하고 차량 모델(서비스 유형)을 선택하기만 하면 Didi가 자동으로 귀하의 필요에 맞는 차량을 배정해 드립니다.

반납. springcloud에 Eureka가 등장하는데, Eureka는 서비스 제공자 정보를 관리하고 기록하는 역할을 하는 Didi와 같습니다. 서비스 호출자는 서비스를 직접 찾을 필요가 없으며 Eureka에 자신의 요구 사항을 말하면 Eureka가 귀하의 요구 사항에 맞는 서비스를 알려줄 것입니다. 동시에 서비스 제공자 및 Eureka는 “心跳” 메커니즘을 통해 모니터링됩니다. 서비스 제공자에 문제가 발생하면 Eureka는 해당 서비스를 서비스 목록에서 자연스럽게 제거합니다.

이를 통해 서비스의 자동 등록, 검색 및 상태 모니터링이 실현됩니다.

springCloud의 Eureka 사례에 대한 심층 분석

Eureka: 서비스 등록 센터(클러스터일 수도 있음)이며 주소를 외부에 노출합니다.

Provider: 시작 후 Eureka에 자신의 정보(주소, 제공되는 서비스)를 등록합니다.

Consumer : Eureka 서비스를 구독하면 Eureka는 해당 서비스의 모든 공급자 주소 목록을 소비자에게 보내고 정기적으로 업데이트합니다.

Heartbeat(갱신): 공급자는 정기적으로 http 방법을 통해 Eureka에 상태를 새로 고칩니다.

연습:

유레카 등록 센터 구조 다이어그램:

springCloud의 Eureka 사례에 대한 심층 분석

pom.xml 파일 개선 및 종속성 추가

다음은 pom 파일의 주요 부분입니다

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.0.3.RELEASE</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
   <java.version>1.8</java.version>
   <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>

<dependencies>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
   </dependency>

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>
</dependencies>

<dependencyManagement>
   <dependencies>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-dependencies</artifactId>
         <version>${spring-cloud.version}</version>
         <type>pom</type>
         <scope>import</scope>
      </dependency>
   </dependencies>
</dependencyManagement>

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>
로그인 후 복사

Edit 시작 클래스

@SpringBootApplication
@EnableEurekaServer // 声明这个应用是一个EurekaServer
public class SpringcloudEurekaServerApplication {

   public static void main(String[] args) {

      SpringApplication.run(SpringcloudEurekaServerApplication.class, args);
   }
}
로그인 후 복사

Write 애플리케이션입니다. yml 구성

server:
  port: 8081 # 端口
spring:
  application:
    name: eureka-server # 应用名称,会在Eureka中显示
eureka:
  client:
    register-with-eureka: false # 是否注册自己的信息到EurekaServer,默认是true
    fetch-registry: false # 是否拉取其它服务的信息,默认是true
    service-url: # EurekaServer的地址,现在是自己的地址,如果是集群,需要加上其它Server的地址。
      defaultZone: http://127.0.0.1:${server.port}/eureka
로그인 후 복사

프로젝트 실행: http://127.0.0.1:8081

springCloud의 Eureka 사례에 대한 심층 분석

이제 유레카 등록 센터가 성공적으로 구축되었습니다

위 내용은 springCloud의 Eureka 사례에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿