SpringCloud学習シリーズ-Feign負荷分散(2)

手順を使用装います

1.参考microservicecloud-消費者DEPT-80新microservicecloud-消費者DEPT-装います

  マスター・ブート・クラス名DeptConsumer80_Feign_Appを変更

2.microservicecloud-消費者DEPT-装うプロジェクトのpom.xmlの変更、主に装うためのサポートを追加します

< 依存性> 
       < のgroupId > org.springframework.cloud </ のgroupId > 
       < たartifactId >ばねクラウドスタータふり</ たartifactId > 
   </ 依存>

3.変更microservicecloud-APIプロジェクト

POM

< プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0" のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" 
  のxsi:schemaLocationの=「HTTP:/ http://maven.apache.org/xsd/maven-4.0.0.xsd /maven.apache.org/POM/4.0.0 " > 
  < modelVersion > 4.0.0 </ modelVersion > 
 
  < > <! - パフォーマンスを継承するために、明確な声明を示しサブクラス、何の事故は、デフォルトの親クラスのバージョンや、独自の定義がありません- > 
   < groupIdを> com.atguigu.springcloud </ groupIdを> 
   < たartifactId > microservicecloud </ たartifactId > 
   <バージョン> 0.0.1-SNAPSHOT </ バージョン> 
  </ > 
 
  < たartifactId > microservicecloud-API </ たartifactId > <! - 現在のモジュールに自分の名前だったものは- > 
 
  < 依存> <! - 現在のモジュールが必要ジャーパッケージに、親クラスがすでに含まれている場合、追加するための独自のニーズに応じて、あなたはバージョン番号を書き込むことはできません- > 
   < 依存> 
     < groupIdを> org.projectlombok </ groupIdを> 
     < たartifactId >ロンボク</ たartifactId > 
   </ 依存関係>
   < 依存性> 
     < のgroupId > org.springframework.cloud </ のgroupId > 
     < たartifactId >ばねクラウドスタータふり</ たartifactId > 
   </ 依存> 
  </ 依存関係> 
 
 
 
</ プロジェクト>

新DeptClientServiceインタフェースやコメントを追加@FeignClient

パッケージcom.atguigu.springcloud.service。
 
輸入はjava.util.List; 
 
輸入org.springframework.cloud.netflix.feign.FeignClient;
輸入org.springframework.web.bind.annotation.PathVariable;
輸入org.springframework.web.bind.annotation.RequestMapping。
輸入org.springframework.web.bind.annotation.RequestMethod; 
 
輸入com.atguigu.springcloud.entities.Dept; 
 
@FeignClient(値 = "MICROSERVICECLOUD-DEPT" パブリック インターフェースDeptClientService 
{ 
  @RequestMapping(値 = "/ DEPT / GET / {ID}"、方法= RequestMethod.GET)
   公衆部門は、(@PathVariable( "ID")を取得長いid)を。
 
  (値@RequestMapping = "/ DEPT /リスト"、メソッド= RequestMethod.GET)
   公衆リスト<部署> リスト(); 
 
  (値@RequestMapping = "/ DEPT /追加"、メソッド= RequestMethod.POST)を
   パブリック ブール追加(部門のDEPT)。
}
 

クリーンMVN

インストールMVN

4.microservicecloud-消費者DEPT-装う設計変更コントローラー、DeptClientService追加された新しいインターフェイス上でステップ

パッケージcom.atguigu.springcloud.controller。
 
輸入はjava.util.List; 
 
輸入org.springframework.beans.factory.annotation.Autowired;
輸入org.springframework.web.bind.annotation.PathVariable;
輸入org.springframework.web.bind.annotation.RequestMapping。
輸入org.springframework.web.bind.annotation.RestController; 
 
輸入com.atguigu.springcloud.entities.Dept;
輸入com.atguigu.springcloud.service.DeptClientService。
 
@RestController 
パブリック クラスDeptController_Feign 
{ 
  @Autowired 
  プライベート DeptClientServiceサービス= nullを
 
  @RequestMapping(値 = "/消費者/ DEPT / GET / {ID}" 公共部門を取得(@PathVariable( "ID" ロングID)
  { 
   戻り 、この.service.get(ID)を、
  } 
 
  @RequestMapping(値 = "/消費者/ DEPT /リスト" )、
   公衆リスト<部署> リスト()
  { 
   戻り 、この)(.service.listします。
  } 
 
  @RequestMapping(値 = "/消費者/ DEPT / ADD" パブリックオブジェクトの追加(部門のDEPT)
  { 
   戻り 、この.service.add(DEPT)を、
  } 
}
 

マスター・ブート・クラスを変更する5.microservicecloud-消費者DEPT-装うエンジニアリング

パッケージcom.atguigu.springcloud。
 
輸入org.springframework.boot.SpringApplication。
輸入org.springframework.boot.autoconfigure.SpringBootApplication。
輸入org.springframework.cloud.netflix.eureka.EnableEurekaClient;
輸入org.springframework.cloud.netflix.feign.EnableFeignClients。
 
 
@SpringBootApplication 
@EnableEurekaClient 
@EnableFeignClients(basePackages = { "com.atguigu.springcloud" })
@ComponentScan( "com.atguigu.springcloud" パブリック クラスDeptConsumer80_Feign_App 
{ 
  公共 静的 ボイドメイン(文字列[]引数) 
  { 
   SpringApplication.run(DeptConsumer80_Feign_App クラス、引数)。
  } 
}
 
 

6.テスト

スタート3つのクラスタのユーレカ

スタート3つの部門のmicroService 8001/8002/8003

自分のスタート装うを開始

http:// localhost /を消費者/ DEPT /リスト

装う自身のロードバランシングの設定項目

7.まとめ

(リボン+ RestTemplate前)RESTサービスを呼び出すことによって装うインタフェースメソッドは、
ユーレカサーバに要求を送信します(http:// MICROSERVICECLOUD-DEPT / DEPT /リスト)、
によるサービス呼び出し中の時間に、直接装うを介してサービス・インターフェースを見つけますリボン技術を組み合わせて、それはまた、負荷分散効果をサポートしています。

おすすめ

転載: www.cnblogs.com/XiangHuiBlog/p/12095823.html