SpringCloud 서비스 등록 및 Spring Cloud Eureka 인 스 턴 스 코드 발견

11379 단어 SpringCloudEureka
1.Spring Cloud 소개
Spring Cloud 는 기 천 SpringBoot 가 실현 하 는 마이크로 서비스 구조 개발 도구 이다.이 는 마이크로 서비스 구조 에서 관련 된 배치 관리,서비스 관리,차단기,스마트 경로,마이크로 에이전트,제어 버스,전체 잠 금,결정 경선,분포 식 세 션 과 클 러 스 터 상태 관리 등 작업 에 간단 한 개발 방식 을 제공 했다.
Spring Cloud 는 여러 개의 하위 프로젝트(분포 식 시스템 에 관련 된 여러 개의 서로 다른 오픈 소스 제품 에 대해 추가 할 수 있 습 니 다)를 포함 하고 있 습 니 다.다음 과 같 습 니 다.
Spring Cloud Config:설정 관리 도구,Spring Cloud Netflix:핵심 구성 요소,Spring Cloud Bus:이벤트,메시지 버스 등.
2.봄 구름 유레카
Spring Cloud Eureka 는 Spring Cloud Netflix 마이크로 서비스 세트 중의 일부분 으로 Netflix Eureka 를 바탕 으로 2 차 포장 을 했 고 주로 마이크로 서비스 구조 중의 서비스 관리 기능 을 완성 하 는 것 을 책임 진다.Spring Cloud 는 Eureka 에 Spring Boot 스타일 의 자동화 설정 을 추 가 했 습 니 다.저 희 는 의존 과 주해 설정 을 간단하게 도입 하면 Spring Boot 가 구축 한 마이크로 서비스 응용 이 Eureka 서비스 관리 체계 와 쉽게 통합 할 수 있 습 니 다.
서비스 관 리 는 마이크로 서비스 구조 에서 가장 핵심 적 이 고 기초 적 인 모듈 이 라 고 할 수 있 는데 주로 각 마이크로 서비스 사례 의 자동화 등록 과 발견 을 실현 하 는 데 사용 된다.
실례
(1)도구:IntelliJ IDEA
(2)빈 항목 새로 만 들 기

(3)유레카 서버 새로 만 들 기,Module,이름:eurekaserver
프로젝트 오른쪽 단추->모듈 생 성->spring 선택 initialir ->항목 이름 을 작성 하고 다음 단계->그림 에서 Eureka Server 를 선택 하 십시오.

(3-1)pom.xml

<dependency> 
  <groupId>org.springframework.boot</groupId> 
  <artifactId>spring-boot-starter-web</artifactId> 
</dependency> 
 
<dependency> 
  <groupId>org.springframework.cloud</groupId> 
  <artifactId>spring-cloud-starter-eureka-server</artifactId> 
</dependency> 
 
<dependency> 
  <groupId>org.springframework.boot</groupId> 
  <artifactId>spring-boot-starter-test</artifactId> 
  <scope>test</scope> 
</dependency> 
(3-2)application.yml

server: 
 port: 5555 
 
eureka: 
 instance: 
  hostname: localhost 
 client: 
  registerWithEureka: false 
  fetchRegistry: false 
  serviceUrl: 
   defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 
비고:eureka.client.register-with-eureka:이 앱 은 등록 센터 이기 때문에 false 로 설정 되 어 있 으 며,등록 센터 에 자신 을 등록 하지 않 는 다 는 뜻 입 니 다.
eureka.client.fetch-registry:등록 센터 의 직책 은 서비스 인 스 턴 스 를 유지 하 는 것 이기 때문에 서 비 스 를 검색 할 필요 가 없 기 때문에 false 로 설정 합 니 다.
(3-3)입구 류

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 
 
@EnableEurekaServer 
@SpringBootApplication 
public class EurekaserverApplication { 
 
  public static void main(String[] args) { 
    SpringApplication.run(EurekaserverApplication.class, args); 
  } 
} 
(3-4)시작 테스트

위의 설정 이 완료 되면 응용 프로그램 을 시작 하고 접근 합 니 다.http://localhost:5555/。아래 그림 에서 보 듯 이 유레카 정보 패 널 을 볼 수 있 습 니 다.그 중에서 인 스타 그램 스 currently registered with Eureka 란 은 비어 있 습 니 다.이 등록 센터 는 아직 어떠한 서비스 도 등록 하지 않 았 음 을 나타 냅 니 다.
(4)등록 서비스 제공 자 는 서비스 등록 센터 의 구축 을 마 친 후에 우 리 는 기 존의 Spring Boot 응용 을 Emeka 의 서비스 관리 체계 에 가입 하려 고 한다.
(5)Eureka Client,Module 을 새로 만 듭 니 다.이름 은 helloserver 입 니 다.이 helloserver 는 eurekaserver 의 하위 model 입 니 다.

(6)부모 model 과 하위 model 의 pom 설정(6-1)eurekaserver 의 pom.xml 설정 을 개조 합 니 다.

<packaging>pom</packaging> 
<modules> 
  <module>../helloserver</module> 
</modules> 
(6-2)eurekaserver 의 모든 pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
  <modelVersion>4.0.0</modelVersion> 
  <groupId>com.example</groupId> 
  <artifactId>demoeurekaserver</artifactId> 
  <version>0.0.1-SNAPSHOT</version> 
  <packaging>pom</packaging> 
  <modules> 
    <module>../helloserver</module> 
  </modules> 
  <name>eurekaserver</name> 
  <description>Demo project for Spring Boot</description> 
 
  <parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.9.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>Edgware.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-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> 
</project> 
(6-3)helloserver 의 pom.xml 설정:

<parent> 
  <groupId>com.example</groupId> 
  <artifactId>demoeurekaserver</artifactId> 
  <version>0.0.1-SNAPSHOT</version> 
  <relativePath>../eurekaserver/pom.xml</relativePath> 
</parent> 
(6-4)helloserver 의 모든 pom.xml 설정:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
  <modelVersion>4.0.0</modelVersion> 
  <parent> 
    <groupId>com.example</groupId> 
    <artifactId>demoeurekaserver</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <relativePath>../eurekaserver/pom.xml</relativePath> 
  </parent> 
  <artifactId>helloserver</artifactId> 
  <packaging>jar</packaging> 
  <name>helloserver</name> 
  <description>Demo project for Spring Boot</description> 
  <properties> 
    <start-class>com.example.helloserver.HelloserverApplication</start-class> 
  </properties> 
  <dependencies> 
    <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</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> 
</project> 
(6-5)helloserver 의 application.yml 설정:

server: 
 port: 5556 
 
spring: 
 application: 
  name: helloserver 
eureka: 
 client: 
  serviceUrl: 
   defaultZone: http://localhost:5555/eureka/ 
(6-6)helloserver 의 시작 클래스:

@EnableEurekaServer 
@SpringBootApplication 
@RestController 
public class HelloserverApplication { 
  private final Logger log = (Logger) LoggerFactory.getLogger(HelloserverApplication.class); 
  @Autowired 
  private DiscoveryClient client; 
 
  @RequestMapping(name = "/hello", method = RequestMethod.GET) 
  public String index() { 
    ServiceInstance instance = client.getLocalServiceInstance(); 
    log.info("/hello, host:" + instance.getHost() + ",service_id:" + instance.getServiceId()); 
    return "Hello SpringCloud~"; 
  } 
 
  public static void main(String[] args) { 
    SpringApplication.run(HelloserverApplication.class, args); 
  } 
} 
(7)eurekaserver 와 helloserver 를 각각 시작 하고 테스트 합 니 다.
(7-1)eurekaserver 방문:(HELLOSERVER 정 보 를 잘 볼 수 있 음)

(7-2)helloserver 방문:

(7-3)helloserver 콘 솔 정보 보기:

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기