「Springcloud学習」十一装うクライアントのリモート呼び出し

1はじめに

       春の雲は、次の2つの方法長距離通話をサポートしています

       1.RestTemplateの道

        2.Feignクライアントツールは、後で再使用される実際の開発まで。

2.コード

     springcloud_eurekaレジストリプロジェクト

     springcloud_product会員サービス、すなわち生産者

    あるspringcloud_feign_consumer注文サービス、消費者

    このプログラムの構造は、アイテムのMavenを重合させます

   親モジュールの依存関係

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

    <groupId>com.fqyd</groupId>
    <artifactId>springcloud</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>
    <modules>
        <module>springcloud_eureka</module>
        <module>springcloud_eureka_ha</module>
        <module>springcloud_product</module>
        <module>springcloud_product_member</module>
        <module>springcloud_consumer</module>
        <module>springcloud_zk_member</module>
        <module>springcloud_consul_member</module>
        <module>springcloud_feign_consumer</module>
    </modules>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!-- Spring Cloud 管理依赖 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

  2.1 springcloud_eurekaレジストリ

            これは、前のコードを引用し、書き込みは、ここでは繰り返しません

           https://blog.csdn.net/qq_16855077/article/details/90752257

   2.2 springcloud_productの消費者のプロバイダ

          これは、前のコードを引用し、書き込みは、ここでは繰り返しません

         https://blog.csdn.net/qq_16855077/article/details/90770291

   2.3 springcloud_feign_consumer注文サービス、消費者

          2.3.1のpom.xml

             

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.fqyd</groupId>
        <artifactId>springcloud</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <groupId>com.fqyd</groupId>
    <artifactId>springcloud_foreign_consumber</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springcloud_foreign_consumber</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--feign依赖 配置-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <!--整合eureka-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>
</project>

注:春のboot2.0後に、装う依存性があり、多くがオンラインである春 - クラウド・スタータ装うあり、変更スプリング・クラウド・スタータopenfeignの対象となります

    2.3.2 application.yml  

####订单服务器端口号
server:
  port: 8001
###服务别名---服务器注册到注册中心的名称
spring:
  application:
    name: feign-order
eureka:
  client:
    ###当前服务注册到eureka服务地址
    serviceUrl:
      defaultZone: http://localhost:8100/eureka/

   2.3.3コントローラ

package com.fqyd.api.controller;

import com.fqyd.feign.MemberApiFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Description:
 * Author: wude
 * Date:  2019/7/23 16:42
 * Modified By:
 */
@RestController
public class FeignController {
    @Autowired
    private MemberApiFeign memberApiFeign;

    @RequestMapping("/feignMember")
    public String feignMember(){
        return memberApiFeign.getMember();
    };
}

     2.3.4 MemberApiFeign

package com.fqyd.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * Description:
 * Author: wude
 * Date:  2019/7/23 16:11
 * Modified By:
 */
@FeignClient(name = "fqyd-member")
public interface MemberApiFeign {
    //FeignClient  调用服务接口
    @RequestMapping("getMember")
    public  String getMember();
}

 ここでのロジックは、ビジネス・サービスの呼び出し会員サービスのオーダーであります

会員サービス---メッセージングプロバイダ

受注コンシューマサービス---

注:fqyd-会員サービス会員は、ユーレカの別名で登録されている、消費者である、コードのこの部分が書かれています

      2.3.5スタートカテゴリ

package com.fqyd;

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
public class SpringcloudFeignConsumberApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudFeignConsumberApplication.class, args);
    }

}

ルは、以前のコードよりもマルチコメント@EnableFeignClientsを導入します

3テスト

登録・センターを開始して、ニュース・プロバイダー、消費者

http:// localhostを:8001 / feignMember

HTTPClientのに相当し、実際にはリモート呼び出し、HTTP呼び出しを装います

263元記事公開 ウォンの賞賛366 見解150,000を+

おすすめ

転載: blog.csdn.net/qq_16855077/article/details/96995189