spring cloudはfeignサービス間で呼び出します。
3943 ワード
一、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
›サービスプロバイダserver.port:8765 spring.appration.name:service-feign eure.client.serviceUrl.default Zone=http://localhost:8761/eureka/
プログラムの起動クラスServiceFeignAppliationに@EnbaleFeign Clients注釈を加えてFeignの機能をオープンします。@Spring BootAppliation@EnbaleDiscoveryClint@
一つの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{
プログラムを起動して、複数回アクセスします。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)が呼び出されるサービスのパスです。
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)が呼び出されるサービスのパスです。