ホームページ  >  記事  >  Java  >  springCloud の Eureka プラクティスの詳細な分析

springCloud の Eureka プラクティスの詳細な分析

无忌哥哥
无忌哥哥オリジナル
2018-07-20 11:30:223065ブラウズ

1. springcloud の最初の紹介

マイクロサービスはアーキテクチャ的なアプローチであり、最終的には技術的なアーキテクチャを実装する必要があります。

マイクロサービスを実装する方法はたくさんありますが、最も人気のあるのは Spring Cloud です

Spring が最も得意とするのは統合であり、世界で最高のフレームワークを採用し、それらを独自のプロジェクトに統合します。 Spring Cloud にも同じことが当てはまり、現在最も人気のあるテクノロジーのいくつかが統合されており、構成管理、サービス検出、インテリジェントなルーティング、ロードバランシング、ヒューズ、制御バス、クラスターステータスなどの機能が実装されています。その主なコンポーネントは次のとおりです:

  • Eureka: 登録センター

  • Zuul: サービスゲートウェイ

  • Ribbon: ロードバランシング
  • Feign: サービスコール
  • Hystix: ヒューズ
  • 今日は主に springcloud の登録センター Eureka について説明します。

ここにあります人生の例 例:

オンライン配車サービスが登場する前は、人々は配車を呼びに出かけるときにのみタクシーを呼ぶことができました。一部の自家用車はレンタルを希望していますが、資格がなく、ブラックカーと呼ばれます。タクシーを予約したい人は多いですが、残念ながらタクシーの台数が少なすぎて不便です。自家用車はたくさんあるが、あえて止めようとはせず、路上を走る車のうち、どれが人を乗せようとしているのか誰にも分からない。一方は望み、もう一方は喜んで与えますが、紹介と管理が不足しています。

現時点では、Didi のようなオンライン配車プラットフォームが登場しており、乗客を乗せたいすべての自家用車は Didi に登録し、車種 (サービスの種類) と身元情報 (連絡先情報) を記録する必要があります。このようなサービスを提供する専用車は Didi で検索でき、一目で分かります。

現時点で車を呼びたい方は、アプリを開いて目的地を入力し、車種(サービスの種類)を選択するだけで、Didi がお客様のニーズに合った車を自動的に手配します

戻ります。 springcloud に Eureka が登場します。Eureka は Didi のようなもので、サービス プロバイダーの情報の管理と記録を担当します。サービスの呼び出し元は自分でサービスを見つける必要はなく、自分のニーズを Eureka に伝えると、Eureka がニーズに合ったサービスを教えてくれます。同時に、サービスプロバイダーと Eureka は

メカニズムを通じて監視されており、サービスプロバイダーに問題が発生すると、Eureka はそのサービスをサービスリストから自然に削除します。

“心跳”これにより、サービスの自動登録、発見、状態監視が実現します。

springCloud の Eureka プラクティスの詳細な分析Eureka: アドレスを外部に公開するサービス登録センター(クラスターでもよい)

プロバイダ: 起動後にEurekaに自分の情報(アドレス、提供するサービス)を登録する

消費者: Eureka サービスに登録すると、Eureka は対応するサービスのすべてのプロバイダー アドレスのリストを消費者に送信し、定期的に更新します

ハートビート (更新): プロバイダーは http メソッドを通じて Eureka のステータスを定期的に更新します

実践:

Eureka 登録センターの構造図:

springCloud の Eureka プラクティスの詳細な分析 pom.xml ファイルを改善し、依存関係を追加します

以下は pom ファイルの主要な部分です

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.0.3.RELEASE</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
   <java.version>1.8</java.version>
   <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>

<dependencies>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
   </dependency>

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>
</dependencies>

<dependencyManagement>
   <dependencies>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-dependencies</artifactId>
         <version>${spring-cloud.version}</version>
         <type>pom</type>
         <scope>import</scope>
      </dependency>
   </dependencies>
</dependencyManagement>

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>

スタートアップ クラスを編集します

@SpringBootApplication
@EnableEurekaServer // 声明这个应用是一个EurekaServer
public class SpringcloudEurekaServerApplication {

   public static void main(String[] args) {

      SpringApplication.run(SpringcloudEurekaServerApplication.class, args);
   }
}

application.yml 設定

server:
  port: 8081 # 端口
spring:
  application:
    name: eureka-server # 应用名称,会在Eureka中显示
eureka:
  client:
    register-with-eureka: false # 是否注册自己的信息到EurekaServer,默认是true
    fetch-registry: false # 是否拉取其它服务的信息,默认是true
    service-url: # EurekaServer的地址,现在是自己的地址,如果是集群,需要加上其它Server的地址。
      defaultZone: http://127.0.0.1:${server.port}/eureka

プロジェクトを実行します: http://127.0.0.1:8081 にアクセスしてください

springCloud の Eureka プラクティスの詳細な分析この時点で、Eureka 登録センターは正常に構築されました

以上がspringCloud の Eureka プラクティスの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。