SpringCloudAlibaba開発環境を構築するサービス消費者とプロバイダはfeign通信を通じて


SpringCloudAlibaba開発環境を構築するサービス消費者とプロバイダはfeign通信を通じて
  • サービス消費者とプロバイダがfeignを介して通信する前置条件
  • .
  • サービスプロバイダと消費者との通信方式
  • を構築する.
  • 構築サービスプロバイダ
  • 構築サービスの消費者
  • feignとload balance(負荷等化)
  • サービス消費者とプロバイダがfeignを介して通信する前置条件
    サービスの提供者と消費者が事前にサービスに登録する必要がある登録と発見センターの下のリンクでは、サービスをサービス登録と発見センターに登録する方法について説明しています.
    SpringCloudAliba開発環境を構築するサービス登録と発見センターnacos
    サービスプロバイダと消費者の通信方式を構築する
    サービスプロバイダの構築
    サービスの提供者
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class ProviderController {
         
    
        @Value("${server.port}")
        private String port;
    
        @GetMapping("consumer-access-provider/{message}") //    mapping feign    mapping    
        public String consumerAccessProvider(@PathVariable String message){
         
            return String.format("       feign          ,      PORT :%s,               :%s",port,message);
        }
    }
    
    

    サービスを構築する消費者
    Openfeign依存の追加
    
        4.0.0
        bygones-consumer
        1.0.0-SNAPSHOT
        jar
    
        
            com.bygones
            bygones-dependencies
            1.0.0-SNAPSHOST
            ../bygones-dependencies/pom.xml
        
    
        
            
                org.springframework.boot
                spring-boot-starter-web
            
    
            
                org.springframework.boot
                spring-boot-starter-actuator
            
    
            
            
                com.alibaba.cloud
                spring-cloud-starter-alibaba-nacos-discovery
            
    
            
            
                org.springframework.cloud
                spring-cloud-starter-openfeign
            
        
    
    

    プロジェクトの起動クラスでfeign機能をオンにする
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    import org.springframework.cloud.openfeign.EnableFeignClients;
    
    @SpringBootApplication
    @EnableDiscoveryClient
    @EnableFeignClients //   feign  
    public class ConsumerApplication {
         
        public static void main(String[] args) {
         
            SpringApplication.run(ConsumerApplication.class, args);
        }
    }
    
    

    feignインタフェースを作成し、サービスのプロバイダにアクセスします.
    import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    
    /**
     * feign  
     * (1)   FeignClient        
     * (2)          mapping            
     */
    @FeignClient("provider") //         application.name
    public interface AccessProviderService {
         
        @GetMapping("consumer-access-provider/{message}") //   mapping           ,      mapping    
        String consumerAccessProvider(@PathVariable("message") String message); //                       
    }
    
    

    Feignとload balance(負荷等化)
    Feignはribbonを統合しているので、負荷分散をサポートします
    実装方式サービスプロバイダのポートを変更し、複数のサービスプロバイダを起動すればサービスを提供できる消費者は変更しない
    IntelliJ IDEAで1つのプロジェクト起動の複数のインスタンスを構成する方法