spring cloudはfeignサービス間で呼び出します。


一、FeignプロファイルFeignは、Httpクライアントを書くことをより簡単にする声明式の擬似Httpクライアントである。Feignを使用すると,一つのインターフェースを作成し,注釈するだけでよい。これは挿抜可能な注釈特性を持っていて、Feign注解とJAX-RS注解を使用できます。Feignは、挿抜可能なエンコーダおよびデコーダをサポートする。FeignはデフォルトではRibbonを統合し,Eurekaと結合し,デフォルトでは負荷均衡の効果を実現した。Feignはインターフェースに基づく注釈Feignを採用しています。ribbon二を統合して、準備作業は前のセクションの工事を引き続き使用して、eureka-serverを起動して、ポートは8761です。Service-hiを二回起動して、ポートはそれぞれ8762、8773.三、一つのfeignのサービスを創建して新しく一つのspring-bootプロジェクトを創建して、serice-feignと名づけて、そのpomファイルにFeignの初歩依存spring-cloud-starter-feign、Eurkaの初歩依存spring-cloud-starture-starturekaを導入します。
4.0.0
com.forezp
service-feign
0.0.1-SNAPSHOT
jar

service-feign
Demo project for Spring Boot


    org.springframework.boot
    spring-boot-starter-parent
    1.5.2.RELEASE
     



    UTF-8
    UTF-8
    1.8




    org.springframework.cloud
    spring-cloud-starter-eureka
    1.1.0.RELEASE


    org.springframework.cloud
    spring-cloud-starter-feign
    1.1.0.RELEASE


    org.springframework.boot
    spring-boot-starter-web
    1.5.2.RELEASE



    org.springframework.boot
    spring-boot-starter-test
    1.5.2.RELEASE
    test

org.springframe ework.loud spring-cloud-dependencies Brixton.SR 5 pom import org.springframe ew.boot spring-boot-maven-plugn

    
        spring-milestones
        Spring Milestones
        https://repo.spring.io/milestone
        
            false
        
    

プロジェクトのプロファイルでは、アプリケーション名をservice-feignと指定し、ポート番号は8765で、サービス登録住所はhttp://localhost:8761/eureka/ コードは以下の通りです
›サービスプロバイダserver.port:8765 spring.appration.name:service-feign eure.client.serviceUrl.default Zone=http://localhost:8761/eureka/
プログラムの起動クラスServiceFeignAppliationに@EnbaleFeign Clients注釈を加えてFeignの機能をオープンします。@Spring BootAppliation@EnbaleDiscoveryClint@
public static void main(String[] args) {
    SpringApplication.run(ServiceFeignApplication.class, args);
}
)
一つのfeignインターフェースを定義し、@Feign Clientを通じてどのサービスを呼び出すかを指定します。例えば、コードでservice-hiサービスの「/hi」インターフェースを呼び出します。コードは以下の通りです。
ここのインターフェースパスは、パラメータ形式を受けるために呼び出されたインターフェースと完全に一致する必要があります。@Feign Cient(value=service-hi)public interface SchhedualServiceHi{@Request Mapping(value=hi)、method=Request Method.GET)String=String
Web層のcontroller層において、外部には「hi」というAPIインターフェースが露出され、上記で定義されたFeignクライアントSchhedualServiceHiによってサービスが消費される。コードは以下の通りです。@RestController public class HController{
@Autowired
SchedualServiceHi schedualServiceHi;
@RequestMapping(value = "/hi",method = RequestMethod.GET)
public String sayHi(@RequestParam String name){
    return schedualServiceHi.sayHiFromClientOne(name);
}
)
プログラムを起動して、複数回アクセスします。http://localhost:8765/hi?name=forezpを選択して、ブラウザを交互に表示します。
hi forezp,i am from port:8762 hi forezp,i am from port:8763
Feign消費サービスの使用鍵1.@Feign Client(name="service-hi")は、あなたが呼び出すクラスの中でFeign Clientタグservice-hiを通じて(通って)あなたが呼び出すべきサービス名2.@ Request Mapping(name="hi",method=Request Method.GET)が呼び出されるサービスのパスです。