サービス登録のSpringCloudと発見ユーレカ+クライアント装います

  序文

  SpringCloudマイクロサービスのリーダー、最高のフロアプラン。

  ユーレカは、登録中心として、最も重要SpringCloudシステムのコアコンポーネントの一つです。

  ロードバランシングを実現することができユーレカで、インターフェースはサービスを呼び出す使用して注釈を付け装います。

  ソース

  GitHubの

  環境

  JDK 1.8.0 +

  Mavenの3.0 +

  SpringBoot 2.0.3

  SpringCloud Finchley.RELEASE

  開発ツール

  IntelliJ IDEA

  テキスト

  Commonsプロジェクト

  Commonsプロジェクト - POMファイル

  XSI:のschemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4.0.0

  com.zwc

  springcloud-ユーレカ・コモンズ

  1.0

  springcloud-ユーレカ・コモンズ

  公共事業

  びん

  UTF-8

  1.8

  カイロ-SR3

  Finchley.RELEASE

  io.spring.platform

  プラットフォーム-BOM

  $ {プラットフォームbom.version}

  ポンポン

  インポート

  org.springframework.cloud

  春・クラウドの依存関係

  $ {ばねクラウドdependencies.version}

  ポンポン

  インポート

  org.springframework.boot

  春・ブートのmaven-pluginの

  依存いくつかの一般的な構成

  Commonsプロジェクト - プロジェクト構造

  サービスプロジェクト

  登録センター、2つのプロバイダと消費者:このプロジェクトでは4つのモジュールがあります。

  レジストリサービス(レジストリ)

  レジストリサービス - POMファイル

  XSI:のschemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4.0.0

  com.zwc

  springcloud-ユーレカサービス

  1.0

  com.zwc

  springcloud-ユーレカ・レジストリサービス

  0.0.1-SNAPSHOT

  springcloud-ユーレカ・レジストリサービス

  レジストリ

  びん

  com.zwc

  springcloud-ユーレカ・コモンズ

  1.0

  org.springframework.cloud

  春・クラウド・スターター・ネットフリックス - ユーレカ - サーバー

  org.springframework.boot

  春・ブートのmaven-pluginの

  主に追加春 - クラウド・スターター・ネットフリックス - ユーレカ・サーバーに依存

  レジストリサービス - application.ymlプロフィール

  #ポート

  サーバ:

  ポート:8761

  #アプリケーション名

  春:

  応用:

  名前:eurka​​サーバ

  ユーレカ:

  インスタンス:

  #Ipの代わりにインスタンス名を使用して

  好むとIPアドレスを:真

  ホスト名#の例

  ホスト名:$ {spring.cloud.client.ipアドレス}

  ルール#インスタンスID

  インスタンスID:$ {spring.cloud.client.ipアドレス} $ {spring.application.name} $ {}はserver.port

  クライアント:

  #登録センターに自分自身を登録するかどうか

  registerWithEureka:偽

  #レジストリに登録情報を取得するかどうか

  fetchRegistry:偽

  serviceURL:

  #登録センター住所

  defaultZoneます。http:// $ {eureka.instance.hostname}:$ {はserver.port} /ユーリカ/

  もちろんこれは、変更することができ、8761のデフォルトポートを使用しますが、ポートの電話サービスセンター側の登録アドレスの発見はそれと一致するように

  レジストリサービス - クラスを開始

  パッケージcom.zwc。

  輸入org.springframework.boot.SpringApplication。

  輸入org.springframework.boot.autoconfigure.SpringBootApplication。

  輸入org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

  @SpringBootApplication

  @EnableEurekaServer

  パブリッククラスSpringcloudEurekaRegistryServiceApplication {

  パブリック静的無効メイン(文字列[] args){

  SpringApplication.run(SpringcloudEurekaRegistryServiceApplication.class、引数)。

  }

  }

  @EnableEurekaServer注釈起動クラスを追加し、このプロジェクトが登録センターであることを示しています

  レジストリサービス - プロジェクトを開始します

  HTTP 1.プロジェクトの成功をご覧ください:// localhostを:8761 /ユーレカ・サーバーのメインページを参照してください

  プロバイダ(プロバイダ)

  プロバイダ - POMファイル

  XSI:のschemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4.0.0

  com.zwc

  springcloud-ユーレカ-providerfirstサービス

  1.0

  com.zwc

  springcloud-ユーレカ-providerfirstサービスコア

  1.0

  springcloud-ユーレカ-providerfirstサービスコア

  エンジニアリング・サービスの1つのプロバイダ - コア

  びん

  com.zwc

  springcloud-ユーレカ・コモンズ

  1.0

  com.zwc

  springcloud-ユーレカ-providerfirst-サービスAPI

  1.0

  org.springframework.cloud

  春・クラウド・スターター・ネットフリックス - ユーレカ - クライアント

  org.springframework.boot

  春・ブートのmaven-pluginの

  主に追加春 - クラウド・スターター・ネットフリックス - ユーレカ・クライアント依存

  プロバイダ - application.ymlプロフィール

  #ポート

  サーバ:

  ポート:8090

  #アプリケーション名

  春:

  応用:

  名前:言う、こんにちは

  ユーレカ:

  インスタンス:

  #Ipの代わりにインスタンス名を使用して

  好むとIPアドレスを:真

  ホスト名#の例

  ホスト名:$ {spring.cloud.client.ipアドレス}

  ルール#インスタンスID

  インスタンスID:$ {spring.cloud.client.ipアドレス} $ {spring.application.name} $ {}はserver.port

  クライアント:

  serviceURL:

  #登録センター住所

  defaultZoneます。http:// $ {eureka.instance.hostname}:8761 /ユーリカ/

  8761上記の設定ここで注意レジストリアドレスポートポートは、レジストリのプロジェクトを設定されています

  2つの消費者のポートは8090でプロジェクト、ここで一貫性のない専用ポート、および8091のための別のポートがあります。行くことはありません

  二消費者エンジニアリングの役割は、負荷分散の効果を達成することです

  spring.application.name:アプリケーション名、消費者が呼ばれて使用する必要があります

  プロバイダ - コントローラ遠位コントローラ

  パッケージcom.zwc.providerfirst.controller。

  輸入org.springframework.beans.factory.annotation.Value。

  輸入org.springframework.web.bind.annotation.RequestMapping。

  輸入org.springframework.web.bind.annotation.RestController。

  / **

  * @ClassName SayHelloController

  * @Desc TODOセイこんにちは

  * @Date 2019年5月15日午後03時28分

  * @Version 1.0

  * /

  @RestController

  パブリッククラスSayHelloController {

  / *

  * @ClassName SayHelloController

  * @Desc TODOは、設定ファイルのポートを読み込み、

  * @Date 2019年5月15日午前15時49分

  * @Version 1.0

  * /

  @value( "$ {}はserver.port")

  プライベート文字列ポート。

  / *

  * @ClassName SayHelloController

  * @Desc TODOセイこんにちは

  * @Date 2019年5月15日15時30分

  * @Version 1.0

  * /

  @RequestMapping( "/ハロー")

  パブリック文字列のHello(){

  リターン「こんにちは春クラウド!!!ポート:」+ポート。

  }

  }

  こんにちは、出力ポート:サービスの提供

  プロバイダ - クラスを開始

  パッケージcom.zwc。

  輸入org.springframework.boot.SpringApplication。

  輸入org.springframework.boot.autoconfigure.SpringBootApplication。

  輸入org.springframework.cloud.netflix.eureka.EnableEurekaClient。

  @SpringBootApplication

  @EnableEurekaClient

  パブリッククラスSpringcloudEurekaProviderfirstServiceCoreApplication {

  パブリック静的無効メイン(文字列[] args){

  SpringApplication.run(SpringcloudEurekaProviderfirstServiceCoreApplication.class、引数)。

  }

  }

  このプロジェクトは、レジストリにサービスを提供することができることを示し@EnableEurekaClientコメントを追加

  プロバイダ - プロジェクトを開始

  HTTP 1.プロジェクトの成功をご覧ください:// localhostを:8090 /ハロー出力内容を参照してください「こんにちは春クラウド!!!ポート:8090」

  2.更新のhttp:// localhostを:8761のサービスを見ることができます/(レジストリ)が登録されているが来ました

  3.同様に、ポートのプロバイダがあるだけで一貫性のない動作しますが、また、起動

  // localhostを:8091 /ハロー出力内容「こんにちは春クラウド!!!ポート:8091」を参照して、プロジェクトが正常に起動した後、HTTP 4.をご覧ください

  5.更新を再度ます。http:// localhostを:8761 /(レジストリ)2があり、同じサービスプロバイダを見ることができます

  コンシューマー(消費者)

  消費者 - POMファイル

  XSI:のschemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4.0.0

  com.zwc

  springcloud-ユーレカ・消費者サービス

  1.0

  com.zwc

  springcloud-ユーレカ・コンシューマー・サービス・コア

  1.0

  springcloud-ユーレカ・コンシューマー・サービス・コア

  消費者サービスプロジェクト - コア

  びん

  com.zwc

  springcloud-ユーレカ・コモンズ

  1.0

  com.zwc

  springcloud-ユーレカ・コンシューマー・サービスAPI

  1.0

  org.springframework.cloud

  春・クラウド・スターター・ネットフリックス - ユーレカ - クライアント

  org.springframework.cloud

  春・クラウド・スタータopenfeign

  org.springframework.boot

  春・ブートのmaven-pluginの

  プロバイダ、春・クラウド・スターター・ネットフリックス - ユーレカ・クライアント依存の必要性と一致して

  また、あなたは依存春・クラウド・スターター・openfeignを開始装うを追加する必要があります

  消費者 - application.ymlプロフィール

  #ポート

  サーバ:

  ポート:8080

  #アプリケーション名

  春:

  応用:

  名前:サービス装います

  ユーレカ:

  インスタンス:

  #Ipの代わりにインスタンス名を使用して

  好むとIPアドレスを:真

  ホスト名#の例

  ホスト名:$ {spring.cloud.client.ipアドレス}

  ルール#インスタンスID

  インスタンスID:$ {spring.cloud.client.ipアドレス} $ {spring.application.name} $ {}はserver.port

  クライアント:無錫婦人科病院http://www.ytsg120.cn/

  serviceURL:

  #登録センター住所

  defaultZoneます。http:// $ {eureka.instance.hostname}:8761 /ユーリカ/

  8761上記の設定ここで注意レジストリアドレスポートポートは、レジストリのプロジェクトを設定されています

  spring.application.name:アプリケーション名は、それはまた同時に消費で消費することができ、消費者と呼ばれて使用する必要があります

  消費者 - サービス・コール

  パッケージcom.zwc.consumer.api.feign。

  輸入org.springframework.cloud.openfeign.FeignClient。

  輸入org.springframework.web.bind.annotation.RequestMapping。

  / **

  * @ClassName FeignApi

  装うコールAPIを使用して* @Desc TODO - インターフェイス

  * @Date 2019年5月15日午後04時11分

  * @Version 1.0

  * /

  @FeignClient( "言う-こんにちは")

  FeignApiパブリックインターフェイス{

  / *

  * @ClassName FeignApi

  * @DescのTODOコール/ハロー方法と言う-ハローサービス名

  * @Date 2019年5月15日16:17

  * @Version 1.0

  * /

  @RequestMapping( "/ハロー")

  ストリングハロー()。

  }

  コールを指定する@FeignClientを通してどのサービス(「言う-こんにちは」)注釈

  spring.application.nameの提供者であるハローは、言う:アプリケーション名

  ストリングハロー();:見つけることができ、この方法は、唯一のインタフェースとして定義される、でSayHelloController方法を提供することにあります

  プロバイダは同じ値で、同じメソッドと同じパラメータ名を返すために持っていることに注意してください

  消費者 - コントローラ遠位コントローラ

  パッケージcom.zwc.consumer.controller。

  輸入com.zwc.consumer.api.feign.FeignApi。

  輸入org.springframework.beans.factory.annotation.Autowired;

  輸入org.springframework.web.bind.annotation.RequestMapping。

  輸入org.springframework.web.bind.annotation.RestController。

  輸入javax.annotation.Resource。

  / **

  * @ClassName FeignController

  装うコールAPIを使用して* @Desc TODO - フロントコントローラ

  * @Date 2019年5月15日16:18

  * @Version 1.0

  * /

  @RestController

  パブリッククラスFeignController {

  @Autowired(=偽必須)

  プライベートFeignApi feignApi。

  / *

  * @ClassName FeignController

  * @DescのTODOメソッドの呼び出しは、こんにちはと言います

  * @Date 2019年5月15日午前16時20分

  * @Version 1.0

  * /

  ( "/装う")@RequestMapping

  パブリック文字列ふり(){

  feignApi.helloを返します();

  }

  }

  ビーンは、この方法でサービスを呼び出し、@Autowiredコメントアセンブリ豆を使用してください

  外部インタフェースの呼び出しにこのような露出は、実際にサービスプロバイダです

  消費者 - スタートクラス

  パッケージcom.zwc。

  輸入org.springframework.boot.SpringApplication。

  輸入org.springframework.boot.autoconfigure.SpringBootApplication。

  輸入org.springframework.cloud.netflix.eureka.EnableEurekaClient。

  輸入org.springframework.cloud.openfeign.EnableFeignClients。

  @SpringBootApplication

  @EnableEurekaClient

  @EnableFeignClients

  パブリッククラスSpringcloudEurekaConsumerServiceCoreApplication {

  パブリック静的無効メイン(文字列[] args){

  SpringApplication.run(SpringcloudEurekaConsumerServiceCoreApplication.class、引数)。

  }

  }

  このプロジェクトは、レジストリにサービスを提供することができることを示し@EnableEurekaClientコメントを追加

  @EnableFeignClientsノートはリモート呼び出しのために装う機能に示す追加

  消費者 - プロジェクトを開始

  プロジェクトの成功の後1.は、httpにいくつかの訪問を開始しました:// localhostを:8080 /装います

  2.あなたが見つけることができる別の出力「こんにちは春クラウド!!!ポート:8090」と「こんにちは春クラウド!!!ポート:8091」

  3.この時点では、負荷分散の効果を達しています

  4.更新を再度ます。http:// localhostを:8761 /(レジストリ)は、より多くの消費者よりも、この時点で見ることができます

  サービスプロジェクト - プロジェクト構造

  マルチユースプロジェクトのIntelliJ IDEAオープン

  GitHubのからのプロジェクトは、ローカルにダウンロード

  オープンのIntelliJ IDEA

  [ファイル]をクリックします - >開きます

  ローカルのプロジェクトディレクトリにダウンロードオープン

  springcloud - ユーレカ - > springcloud-ユーレカ・サービス(このプロジェクトを開くために選択します)

  奉仕プロジェクトを開いた後、

  もう一度クリックしてファイル - >プロジェクトStructrue

  モジュールを選択し、「+」記号をクリックしてください

  インポートモジュールをクリックします

  またはあなたがローカルプロジェクトディレクトリにダウンロード開きます

  springcloud - ユーレカ - > springcloud-ユーレカ・コモンズ - >のpom.xml

  [OK]をクリックします

  次に、[完了]をクリックします

  [OK]を、[適用]をクリックします

  スプレッド

  CentOS7はドッカー簡単な展開SpringCloudプロジェクトを使用しました


おすすめ

転載: blog.51cto.com/14335413/2425144