マイクロサービスのサービス登録とSpringCloudの発見

   春の雲の.NET Framework、.NETのコアとマイクロサービスに基づいて達成することができます。ネットコアマイクロサービスフレームワークを探しているとき、私たちはSteeltoeオープンソースプロジェクトを見つけました。SpringBootエントリSpringCloudを始めるための基礎は難しいことではない、ちょうど私の最初の本をはじめなければならないとSpringBootは、春はもうすぐ<< >>、学んできた、そして春の雲がSpringBoot基づいて直前に、興味のある友人がたくさんできサポート。この章の学習サービスの登録と発見コンポーネントユーレカのデータ。

   最初のマイクロサービスチャットを学習する前に、なぜ、どのような長所と短所はい。

   マイクロサービスは主に単一のアプリケーションされる前に、単一の共通のアプリケーションは、アプリケーション・パッケージのすべての機能が含まれているWARファイルで、更新の各反復は、それが更新された場合でも、再配備パッケージにする必要がありますコードの行には、各繰り返し同じことする必要がありますアプリケーション全体の崩壊につながる可能性メモリオーバーフロー、無限ループ、へバグリードが存在する場合、テストは、モジュールとモジュールの間の結合の程度は、戦争の全体のパケットを必要とする可能性テストを引き起こし、比較的高いです。日常生活の中で流行している28の原則は、ソフトウェアの分野でも同じである一般的なブログの庭を訪問して、続きを読む少ないの書き込みでWebをブラウズ、我々は通常、我々が訪問する可能性が高い、データの提出の頻度は比較的、小さな単一でありますあなたは身体のアプリケーション展開ブラウジング・インタフェースを増やしたい場合は、インタフェースは、多くの場合、それに続くと思う後、固定単一のアプリケーションまたはすべての問題に統一された技術プラットフォーム・ソリューション、開発言語やフレームワークを使用して、リソースの無駄になりますデータを展開するために提出されます新しいフレームワークや技術の導入は、より困難です。

   主に単一のアプリケーション・プログラミングの顔におけるモノマーアプリケーションでは、マイクロサービスは主に、単一のファンクションポイントを指向プログラミングされた他の場所にはどのような技術どのような特定の言語を気にしないように、ファンクションポイントは、リリース提供します直接呼び出すことができ。そして、それぞれのファンクションポイントは独立して、分離されて展開することができます。インターフェース呼び出しが増加した場合は、インタフェース・アプリケーションを単独で展開することができ、スケーラビリティが優れています。ノードは、トップ上の他のノードいるので、全体ではなくアプリケーションに迅速に失敗したフォールトトレランスがサービスも電流制限サーバーの負荷、その後のCI、より便利なのCDコンテナを超えてアクセスすることができ、良いですが、利用できません。また、長所と短所があり、マイクロサービスは、外部インタフェースの増加を提供配備数の増加の原因となり、サービス管理に新たな課題をもたらし、サービスは、Bサービスを呼び出すサービスエラーならば、Bサービスはつまり、Cのサービスを呼び出しますサービスが引き起こされるか、またはそれにつながるB、Cサービス、及び外部ノードにサービスを提供する多くすることができ、それを引き起こしたノードのサービスですか?だから、また、マイクロサービスのニーズを追跡し、トラブルシューティングのリンク。マイクロサービスの拡大を促進するために触れたように、それがどのような状況の下で拡張する必要があり、話すのに使用されるデータを要求するノードを展開するために必要なものなサービス、それは同じではないサービスを監視する必要があるだろう、と統計情報とディメンションのパラメータを監視します。

  サービス登録と発見コンポーネントユーレカを学ぶために、トピックに戻るカットの下に、フロントとみなさつながります。各サイト外部市場に行くように、いくつかの売り手が販売、服を販売服がインタフェースを提供することを言って、家に幾分似た特定のサービスを提供し、いくつかの売り手は、トラクターのインタフェースは、売り手がそれぞれ独立している、販売する販売トラクター提供しています散在し、市場内のすべての売り手ない場合、それはどこ住んでいる人それぞれに売却する買い手を見つける必要があり、さらに、一般的に適しを訪問することを選択しない場合があり、村の名前何でしたいくつかのショッピング、買い手が前後に実行されますので、それは売り手が各市場にさまざまなサービスを提供している、市場と同じではありません、バイヤーがちょうど必要とされている固定サービスを見つけるために、市場に行きますあなたは、ちょうどその淘宝網でちょうど異なるベンダーが提供するさまざまなサービスを見つけるために、淘宝網のサイトを入力して、物理的な店に行く必要がある前にものを購入する淘宝網では表示されませんすることができます。ユーレカは、直接呼び出しで、サービスは、サービス利用者(バイヤー)は、任意の場所でのサービスプロバイダを気にしないものについては、登録命令限り、サービスプロバイダ(売り手)のための集中管理プラットフォームを提供淘宝網の機能、と少し似ていますまあ、それは、集中処理です。

まず、ユーレカサーバーを作成します

1.依存紹介

   SpringCloudユーレカはSpringBootプロジェクトを作成することは比較的容易であるときユーレカServerが使用することができます選択し、それが自動的にのpom.xmlに以下の二つの依存関係を紹介します、また、あなた自身を追加することができます。

    <依存>
        <groupIdを> org.springframework.cloud </ groupIdを>
        <たartifactId>ばねクラウドスターター</たartifactId>
    </依存関係>
    <! -のhttps:// mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-server - >
    <依存>
    <groupIdを> org.springframework.cloud </ groupIdを>
    <たartifactId>ばねクラウドスタータのNetflix、ユーレカサーバ</たartifactId>
    </依存関係>
コードの表示

2、スタートアップコードは@EnableEurekaServerコメントを追加しました

パッケージcom.example.demo。

輸入org.springframework.boot.SpringApplication。
輸入org.springframework.boot.autoconfigure.SpringBootApplication。
輸入org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication
パブリック クラスEurekaServerApplication {

    パブリック 静的 ボイドメイン(文字列[]引数){
        SpringApplication.run(EurekaServerApplication。クラス、引数)。
    }

}
コードの表示

3、設定ファイル

デフォルトの設定では、サービスセンターは、独自に登録しようとするクライアントとして自身を登録しますので、私たちはそのクライアント登録動作を無効にする必要があり、application.propertiesで次の設定を追加します:

spring.application.name =春、cloud- ユーレカ
eureka.client.register -with-ユーレカ= 
eureka.client.fetchの -registry = falseを
eureka.client.serviceUrl.defaultZone =のhttp:// localhostを:$ {はserver.port} /ユーリカ/ 
はserver.port = 8088

eureka.client.register-と-ユーレカ:デフォルトはtrueで、ユーレカサーバーに自分自身を登録するかどうかを示します。
eureka.client.fetch-レジストリ:デフォルトはtrueで、ユーレカサーバーから登録情報を取得するかどうかを示します。
eureka.client.serviceUrl.defaultZone:ユーレカサーバーアドレス、追跡および登録サービスとセットの相互作用は、このアドレスに依存する必要があります。デフォルトはhttp:// localhostを:8761 /ユーレカ 、 複数のアドレスを分離し、使用することができます。

4.アプリケーションを起動します

ブラウザの入力HTTPを:// localhostを:8088 /には、あなたは以下のページを参照してくださいすることができ、まだ登録していないインスタンスがあります。

二、ユーレカクラスター

ここでは最初の2つの設定ファイルのapplication-peer1.properties、application-peer2.propertiesを追加し、ユーレカレジストリを構築するために、2つのノードを使用しています。8000,8001ポートを開始しました。同時に、

お互いにeureka.client.serviceUrl.defaultZoneアドレス。

application-peer1.properties:

spring.application.name =春、cloud- ユーレカ
server.port = 8000 
eureka.client.serviceUrl.defaultZone =のhttp:// localhostを:8001 /ユーリカ/

application-peer2.properties:

spring.application.name =春、cloud- ユーレカ
server.port = 8001 
eureka.client.serviceUrl.defaultZone =のhttp:// localhostを:8000 /ユーリカ/

application.properties:

spring.application.name =春、cloud- ユーレカ
eureka.client.register -with-ユーレカ= 
eureka.client.fetchの -registry = 

MVNきれいなパッケージユーレカServerプロジェクトのパッケージには、EurekaServer-0.0.1-SNAPSHOT.jarにパッケージを生成します。

ディレクトリEurekaServer-0.0.1-SNAPSHOT.jarには、次の2つのコマンドが実行され、EurekaServer 2つのインスタンスを起動します。

ます。java -jar EurekaServer-0.0.1-SNAPSHOT.jarに--spring.profiles.active = ピア1
java -jar EurekaServer-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

 

然后在浏览器中输入http://localhost:8001/http://localhost:8000/就会发现你中有我我中有你。这里也都是参考纯洁的微笑大神的:http://www.ityouknow.com/springcloud/2017/05/10/springcloud-eureka.html。在里面介绍说注册中心会出现在available-replicas中,但我这边的测试并未在available-replicas中,看它的评论里也有一些也是未出现在available-replicas中,这个地方可能还要再留意一下。

三、创建Eureka Client

1、引入依赖

这里先创建个服务提供者,也就是生产者。在创建时选中Eureka Client,项目会自动引入下面的spring-cloud-starter-netflix-eureka-client依赖。由于要提供服务,所以这里又引入了spring-boot-starter-web。

        <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-client</artifactId>
        </dependency>

2、启动代码中添加@EnableDiscoveryClient注解

与上面添加@EnableEurekaServer类似,这里添加@EnableDiscoveryClient注解。

3.配置文件

这里提供配置了eureka交互地址,这里为两个,将服务注册到eureka两个实例中。

spring.application.name=spring-cloud-producer
server.port=9000
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/,http://localhost:8001/eureka/

4.增加服务HelloController

package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String index(@RequestParam String name) {
        return "hello "+name+",this is first messge";
    }
}
View Code

5.启动应用就可在http://localhost:8000/http://localhost:8001/中看到最近注册到Eureka的实例spring-cloud-producer。

 

 四、小结

本篇主要了解了下什么是Eureka,它的作用,以及如何使用。主要学习Eureka服务端的配置和双节点配置,将Eureka client注册到Eureka server中,后续就是要学习如何调用生产者提供的服务了。

最后再推荐下我的新书<<spring 快速入门>>,个人认为对与Spring初学者来说还是值得一读的,虽然之前也没有过Java的工作经验,写这本书的过程也是我二次复习巩固Spring的过程,我也是以初学者的角度来完成这本书的。本书目录在前面的博客中,可以点击查看

 

おすすめ

転載: www.cnblogs.com/5ishare/p/11111621.html