3. 성명 식 RESTful 클 라 이언 트: Spring Cloud OpenFeign
8357 단어 마이크로 서비스
1.8
Greenwich.RELEASE
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
시작 클래스 에 주석 @ EnableEureka Server 를 추가 합 니 다. 코드 는 다음 과 같 습 니 다.
// ,
@EnableEurekaServer
@SpringBootApplication
public class EurakeServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurakeServerApplication.class, args);
}
}
application. yml 프로필 에 설정 을 추가 하고 등록 센터 의 포트 와 표 지 를 설정 합 니 다.
server:
port: 8761
eureka:
instance:
hostname: standalone
instance-id: ${spring.application.name}:${vcap.application.instance-id:${spring.application.instance-id:${random.value}}}
client:
register-with-eureka: false # Eureka Server
fetch-registry: false # Eureka Server
service-url: #Eureka Server , Client Server
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
application:
name: eureka-service
2. Euraka 서비스 제공 자 를 구축 하여 아이디어 에서 SpringBoot 프로젝트 를 만 들 고 주로 다음 과 같이 의존 합 니 다.
1.8
Greenwich.RELEASE
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
시작 클래스 는 다음 과 같 습 니 다:
@SpringBootApplication
public class EurakeClient01Application {
public static void main(String[] args) {
SpringApplication.run(EurakeClient01Application.class, args);
}
}
application. yml 설정 은 다음 과 같 습 니 다.
server:
port: 8762
eureka:
instance:
hostname: client
instance-id: ${spring.application.name}:${vcap.application.instance-id:${spring.application.instance-id:${random.value}}}
client:
service-url:
defaultZone: http://localhost:8761/eureka/ #
spring:
application:
name: feign-service
controller 패 키 지 를 새로 만 들 고 서 비 스 를 제공 하 는 인 터 페 이 스 를 추가 합 니 다. 코드 는 다음 과 같 습 니 다.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/*
* @Author chencundeng
* @Description //TODO
* @Date 2019/2/23
**/
@RequestMapping("/feign-service")
@RestController
public class FeignServiceController {
@GetMapping("/say-hello/{name}")
public String sayHello(@PathVariable("name") String name){
return "hello ".concat(name).concat("!");
}
}
3. Feign 서비스 소비 자 는 아이디어 에 구축 하여 SpringBoot 프로젝트 를 만 들 고 주로 다음 과 같이 의존 합 니 다.
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-starter-openfeign
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
시작 클래스 는 다음 과 같 습 니 다:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableFeignClients
public class FeignClientApplication {
public static void main(String[] args) {
SpringApplication.run(FeignClientApplication.class, args);
}
}
application. yml 설정 은 다음 과 같 습 니 다.
server:
port: 8763
eureka:
instance:
hostname: client
instance-id: ${spring.application.name}:${vcap.application.instance-id:${spring.application.instance-id:${random.value}}}
client:
service-url:
defaultZone: http://localhost:8761/eureka/ #
spring:
application:
name: feign-client
controller 패 키 지 를 새로 만 들 고 Feign 클 라 이언 트 인터페이스 와 서비스 클래스 를 추가 합 니 다. 코드 는 다음 과 같 습 니 다.
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient("feign-service") //
@RequestMapping("/feign-service")
public interface FeignServiceClient {
@GetMapping("/say-hello/{name}")
public String sayHello(@PathVariable("name") String name);
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
/*
* @Author chencundeng
* @Description //TODO
* @Date 2019/2/22
**/
@RestController
public class FeignClientController {
@Autowired
private FeignServiceClient feignServiceClient;
@GetMapping("/say-hello/{name}")
public String sayHello(@PathVariable("name") String name){
return feignServiceClient.sayHello(name);
};
}
4. OpenFeign 클 라 이언 트 가 상기 세 개의 서 비 스 를 구축 한 후에 세 개의 서 비 스 를 순서대로 시작 하고 주 소 를 입력 합 니 다.http://127.0.0.1:8762/say- hello / fegn 에서 출력 문 구 를 볼 수 있 습 니 다.
5. 예 소스 주 소 는 다음 과 같다.https://gitee.com/mingzhishuyuan/spring-cloud.git
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
마이크로 서비스 간에feign을 통해 서로 호출되며, 크로스 서버 호출 시 이상이 발생: No route to host해결: feign이 다른 서비스를 호출하는 것도 eureka 등록센터 서비스를 획득하여 서비스가 등록된 IP에 문제가 있는지 추측하고 지정한 appId의 실례를 조회한다. eureka url/eureka/apps/{...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.