手順を使用装います
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 /リスト)、
によるサービス呼び出し中の時間に、直接装うを介してサービス・インターフェースを見つけますリボン技術を組み合わせて、それはまた、負荷分散効果をサポートしています。