유레카 소개
Eureka는 주로 클러스터의 서비스 관리에 사용되는 REST 기반 서비스를 제공합니다. Eureka는 Java 언어를 기반으로 클라이언트 구성 요소를 제공하여로드 밸런싱 기능을 구현하여 비즈니스 구성 요소의 클러스터 배포 조건을 만듭니다. 이 프레임 워크를 사용하여 비즈니스 구성 요소는 클러스터에 배치 할 수있는 Eureka 컨테이너에 등록 할 수 있으며 Eureka는 주로 이러한 서비스 목록을 유지하고 상태를 자동으로 확인합니다.
프로그램 구조
유레카 서버를 만듭니다
Maven 의존성
<pectionencymanagement> <pectinements> <pectinement> <groupId> org.springframework.cloud </groupId> <artifactid> Spring-Cloud-Dependencies </artifactid> <bersion> dalston.sr1 </version> <type> pom </type> <splecop> <pependency> </dependence> <groupid> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Starter-Eureka-Server </artifactid> </fectionency> </dependencies>
Application.yml에서 Spring Boot Startup 포트를 변경하십시오
서버 : 포트 : 8761
Eureka Service Annotation @enableEureKaserver를 활성화하십시오
@enableEureKaserver@springBootApplicationPublic class ekserverApplication {public static void main (string [] args) {new springApplicationBuilder (ekserverApplication.class) .Run (args); }}SpringBoot를 시작하십시오
[Thread-11] Oscneserver.eurekaserverbootstrap : 초기화 된 서버 컨텍스트 [Main] SBCETTOMCATEMBEDDEDSERVLETCONTAINER : TOMCAT가 포트에서 시작되었습니다 (S) : 8761 (HTTP) [Main] .ScneeureKaAutoServiceRegistration : 8761로 업데이트 된 CBFIRSTEK. 8.594 초 만에 ekserverapplication (9.523의 JVM 실행)
시작 중에 서버에 연결할 수없는 예외가 나타납니다. Eureka는 시작할 때 등록 정보를 가져 오는 고객으로서 스스로를 취급하기 때문입니다.
코드 사본은 다음과 같습니다.
com.netflix.discovery.shared.transport.transportexception : 알려진 서버에서 요청을 실행할 수 없습니다
다음 구성을 추가하면 시작할 때 다시 나타나지 않습니다.
유레카 : 클라이언트 : registerwitheureka : false fetchregistry : false
RegisterWitheureka는 자체 정보를 Eureka 서버에 등록할지 여부를 선언합니다. 기본값은 참입니다.
Fetchregistry는 등록 정보를 Eureka 서버로 크롤링할지 여부를 선언합니다. 기본값은 참입니다.
유레카 콘솔 입력의 이미지 설명을 보려면 브라우저에서 http : // localhost : 8761을 방문하십시오.
서비스 제공 업체를 만듭니다
의존하다
<pectionency> <groupId> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Starter-Config </artifactid> </fectionency> <groupIdency> <groupId> org.springframework.cloud </groupid> <artifactid> spring-cloud-starter-eureka </arepifactid> <groupid> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Starter-Ribbon </artifactid> </fectionency>
Application.yml에서 포트, 유레카 인스턴스 이름 및 유레카 서비스 주소 구성
서버 : 포트 : 8080Spring : 응용 프로그램 : 이름 : Ek-Providereureka : Ek-Providereureka : 인스턴스 : 호스트 이름 : localhost 클라이언트 : ServiceUrl : http : // localhost : 8761/eureka/
휴식 서비스를 만듭니다
@RestControllerPublic 클래스 HelloController {@requestmapping ( "/hello") public String Hello (httpservletRequest 요청) {return "hello :" + request.getRequestUrl (); }}Eureka Client Annotation @enableEureKaserver를 활성화하십시오
@enableEureKAclient@SpringBootApplicationPublic Class ekproviderApplication {public static void main (string [] args) {new springApplicationBuilder (ekproviderApplication.class) .run (args); }}시작 후 Eureka 콘솔에서 서비스 제공 업체가 Eureka에 등록한 것을 볼 수 있습니다.
서비스 호출자를 만듭니다
의존하다
<pectionency> <groupId> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Starter-Config </artifactid> </fectionency> <groupIdency> <groupId> org.springframework.cloud </groupid> <artifactid> spring-cloud-starter-eureka </arepifactid> <groupid> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Starter-Ribbon </artifactid> </fectionency>
Application.yml에서 포트, 유레카 인스턴스 이름 및 유레카 서비스 주소 구성
서버 : 포트 : 9000spring : 응용 프로그램 : 이름 : Ek-Invokeeureka : instance : hostname : localhost 클라이언트 : ServiceUrl : http : // localhost : 8761/eureka/
서비스 제공 업체의 "/Hello"에 전화하기 위해 휴식 서비스를 작성하십시오.
@restController @configurationPublic Class InvokeController {@bean @loadbalanced public resttemplate getRestTemplate () {return new restTemplate (); } @requestmapping ( "/invoke") public string invoke () {resttemplate resttemplate = getRestTemplate (); resttemplate.getForObject ( "http : // ek-provider/hello", String.class); }}전통적인 모드에서는 보통 Apache에서 httpclient를 사용하여 나머지 서비스를 호출합니다. 여기서 우리는 Spring을 사용하여 REST 서비스를 호출하는 RestTemplate 구성 요소를 제공합니다. RestTemplate 자체는 분산 서비스를 호출 할 수있는 기능이 없지만 resttemplate Bean이 @loadbalanced 주석으로 수정 된 후 Spring에서 제공하는 다양한 인터셉터 덕분에 분산 서비스에 액세스 할 수 있습니다.
Eureka Client Annotation @enableEureKaserver를 활성화하십시오
@enableEureKAclient@SpringBootApplicationPublic Class ekinVokeApplication {public static void main (String [] args) {새로운 springApplicationBuilder (ekinvokeApplication.class) .run (args); }}시작 후 Eureka 콘솔에서 서비스 발신자가 Eureka에 등록 된 것을 볼 수 있습니다.
그런 다음 브라우저에서 서비스 호출자의 "호출"인터페이스에 액세스하십시오. 다음과 같이 반환하십시오
요약
유레카 서버는 메모리에 저장된 하트 비트 링크를 통해 최신 등록 정보를 유지합니다.
유레카 서비스 제공 업체는 주로 수행합니다.
유레카 서비스 발신자는 주로 수행합니다.
소스 코드 주소 : https://github.com/xc564864894/springcloud/tree/master/eureka(%E4%B8%80)
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.