springcloud-서비스 호출편(feign)

5053 단어
1. 장면 묘사
우리는 리본을 통해 서비스 간의 호출을 실현할 수 있지만 서비스가 많을 때 호출 방법은 쓰기가 비교적 번거롭고 관리하기도 쉽지 않다.feign은 ribbon을 통합하여 인터페이스 방식으로 서비스를 호출하여 더욱 편리하게 한다
2. feign 실현
  • Idea-->file-->new-->project-->spring initializr-->next-->필요한 정보 수정-->next
  • Cloud Routing-->Feign 및 Cloud Discovery-->Eureka Discovery
  • 선택
  • next-->finish
  • 를 클릭
  • 생성 프로젝트에 있는pom 파일의 내용은 다음과 같다.
  • 
    
        4.0.0
    
        com.example
        eurekafeign
        0.0.1-SNAPSHOT
        jar
    
        eurekafeign
        Demo project for Spring Boot
    
        
            org.springframework.boot
            spring-boot-starter-parent
            2.0.4.RELEASE
             
        
    
        
            UTF-8
            UTF-8
            1.8
            Finchley.SR1
        
    
        
            
                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
                
            
        
    
        
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                
            
        
    
    
    
    
  • 우리는 그 중 두 가지 중요한 의존을 볼 수 있다. 우리가 프로젝트가feign 호출 기능을 추가할 때 아래 두 가지 의존을 추가하면 된다
  • 
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-client
    
    
        org.springframework.cloud
        spring-cloud-starter-openfeign
    
    
  • 시작 클래스에 @EnableFeignClients를 추가합니다.feign 구성 사용하기
  • 응용 프로그램에서.properties 파일에 eureka 설정을 추가하여 등록 센터를 사용할 수 있도록 합니다.설정은 등록센터 실전편을 참조하십시오. 내용은 다음과 같습니다.
  • spring.application.name=eurekafeign
    server.port=8084
    eureka.client.serviceUrl.defaultZone=http://eureka1:8001/eureka/ ,http://eureka1:8002/eureka/,http://eureka1:8003/eureka/
    
  • 간단한 호출 실례 코드는 다음과 같습니다. ==Demo ServiceInterface== 이것은 핵심 내용입니다. Feign의 클라이언트 인터페이스입니다. @FeignClient("DEMO")는 이 인터페이스가 eureka 등록 센터의 DEMO 서비스의 서비스 @RequestMapping("/hello")을 사용하도록 지정하여 DEMO 서비스의 Hello 서비스
  • 를 호출합니다.
    package com.example.eurekafeign;
    
    import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.stereotype.Component;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Component
    @FeignClient("DEMO")
    public interface DemoServiceInterface {
        @RequestMapping("/hello")
        String hello();
    }
    
    
    
  • 데모의 Hello 서비스를 호출해야 하는 곳에 Demo Service Interface를 주입하고 Hello 방법을 직접 호출하면 호출을 완성할 수 있습니다.
  • package com.example.eurekafeign;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    
    @RestController
    public class HelloWord {
        @Resource
        private DemoServiceInterface demoServiceInterface;
        @RequestMapping(value="hello")
        @ResponseBody
        public String helloWord(){
            return  demoServiceInterface.hello();
        }
    
    
    
    }
    
    

    ++ 칠판 두드리기++
    feign     Ribbon    serviceid     ,   ribbon             ,      ribbon               
                                    
               @requestBody  @RequestParameter value      ,                
    
    

    참조 문서:https://www.jianshu.com/p/270f3cd658f1

    좋은 웹페이지 즐겨찾기