Spring Cloud Eureka Ribbon 서비스 등록 발견 및 호출
Spring Cloud 에서 Eureka 와 Ribbon 의 기본 적 인 용법 을 간단 한 예 로 보 여 줍 니 다.
버 전과 환경
Spring Cloud 에 서 는 eureka 를 사용 하여 마이크로 서 비 스 를 관리 할 수 있 고 마이크로 서 비 스 는 eureka 에 등록 할 수 있 습 니 다.
우선 IDEA 의
Spring Initialzr
으로 eureka server 등록 센터 를 만 들 수 있 습 니 다.application.properties 파일 을 수정 하고 다음 내용 을 추가 합 니 다.
spring.application.name=eureka-server
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
server.port=8881
Spring Boot 에서 생 성 된 시작 클래스 ServerApplication
에 @EnableEurekaServer
주 해 를 추가 합 니 다.
package com.springcloud.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class ServerApplication {
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);
}
}
브 라 우 저 에 입력http://localhost:8881/다음 화면 을 볼 수 있 습 니 다:
아직 서비스 등록 이 되 지 않 은 것 을 볼 수 있 습 니 다.이로써 간단 한 마이크로 서비스 등록 센터 가 구축 되 었 다.
마이크로 서비스 userservice 작성
다음은 rest 로 마이크로 서비스 인 터 페 이 스 를 구축 하고 등록 센터 에 등록 합 니 다.여전히
Spring Initialzr
을 사용 하여 새로운 공 사 를 구축한다.사용 방식 은 위의 것 과 같다.이번 에는
Eureka Discovery
구성 요 소 를 선택 하 십시오.Eureka Server
이 아니 라application.properties 파일 을 수정 하고 다음 내용 을 추가 합 니 다.
spring.application.name=user
server.port=8882
eureka.client.service-url.defaultZone=http://localhost:8881/eureka/
Spring Boot
이 우리 에 게 생 성 된 UserApplication
류 에서 @EnableDiscoveryClient
주 해 를 사용 합 니 다.
package com.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class, args);
}
}
rest full 의 마이크로 서비스 인 터 페 이 스 를 만 듭 니 다.
package com.springcloud;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@GetMapping("/getUser")
public String getUser() {
return "I am user list.";
}
}
UserApplication 실행 후 다시 방문http://localhost:8881/user 라 는 서비스 가 등록 되 어 있 는 것 을 발견 할 수 있 습 니 다.
마이크로 서비스 order 작성
그 다음 에 저 희 는 주문 한 마이크로 서 비 스 를 구축 하고 user 라 는 마이크로 서비스의 인 터 페 이 스 를 방문 합 니 다.
여전히
Spring Initialzr
을 사용 하여 새로운 공 사 를 구축한다.user 라 는 마이크로 서 비 스 는 여러 대의 기계 에 배치 할 수 있다.클 라 이언 트 가 이 서 비 스 를 방문 할 때 user 서 비 스 를 배치 한 모든 기계 로 이동 할 수 있 도록 요청 합 니 다.따라서 클 라 이언 트 는 user 라 는 서 비 스 를 알고리즘 으로 예약 해 야 합 니 다.Spring Cloud 에 서 는 Ribbon 구성 요 소 를 사용 하여 클 라 이언 트 경로 로 사용 할 수 있 습 니 다.Ribbon 내부 에 서 는 서비스 등록 센터 에 가서 서비스 목록 을 가 져 와 해당 하 는 서 비 스 를 호출 할 수 있 습 니 다.이번 에는
Eureka Discovery
구성 요 소 를 선택 하 는 것 외 에Ribbon
을 뽑 아야 합 니 다.application.properties 파일 을 수정 하고 다음 내용 을 추가 합 니 다.
spring.application.name=order
server.port=8883
eureka.client.service-url.defaultZone=http://localhost:8881/eureka/
Spring Boot
이 우리 에 게 생 성 된 OrderApplication
류 에 다음 과 같은 설정 을 추가 합 니 다.
package com.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@EnableDiscoveryClient
@SpringBootApplication
public class OrderApplication {
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}
리본 을 사 용 했 기 때문에 @LoadBalanced
주 해 를 사용 해 야 합 니 다.OrderController
을 편찬 하 다.
package com.springboot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class OrderController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/getOrderUser")
public String getOrderUser() {
return restTemplate.getForEntity("http://user/getUser",String.class).getBody();
}
}
OrderApplication
실행 후 접근http://localhost:8881/order 라 는 서비스 도 등록 센터 에 등 록 된 것 을 발견 할 수 있 습 니 다.
다음은
OrderController
중의 getOrderUser
방법 을 방문 하여 UserController
의 getUser
방법 을 촉발 합 니 다.브 라 우 저 에 입력:http://localhost:8883/getOrderUser
되 돌아 오 는 것 을 볼 수 있 습 니 다:I am user list.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.