1. springcloud の最初の紹介
マイクロサービスはアーキテクチャ的なアプローチであり、最終的には技術的なアーキテクチャを実装する必要があります。
マイクロサービスを実装する方法はたくさんありますが、最も人気のあるのは Spring Cloud です
Spring が最も得意とするのは統合であり、世界で最高のフレームワークを採用し、それらを独自のプロジェクトに統合します。 Spring Cloud にも同じことが当てはまり、現在最も人気のあるテクノロジーのいくつかが統合されており、構成管理、サービス検出、インテリジェントなルーティング、ロードバランシング、ヒューズ、制御バス、クラスターステータスなどの機能が実装されています。その主なコンポーネントは次のとおりです:
Eureka: 登録センター
ここにあります人生の例 例:
オンライン配車サービスが登場する前は、人々は配車を呼びに出かけるときにのみタクシーを呼ぶことができました。一部の自家用車はレンタルを希望していますが、資格がなく、ブラックカーと呼ばれます。タクシーを予約したい人は多いですが、残念ながらタクシーの台数が少なすぎて不便です。自家用車はたくさんあるが、あえて止めようとはせず、路上を走る車のうち、どれが人を乗せようとしているのか誰にも分からない。一方は望み、もう一方は喜んで与えますが、紹介と管理が不足しています。
現時点では、Didi のようなオンライン配車プラットフォームが登場しており、乗客を乗せたいすべての自家用車は Didi に登録し、車種 (サービスの種類) と身元情報 (連絡先情報) を記録する必要があります。このようなサービスを提供する専用車は Didi で検索でき、一目で分かります。
現時点で車を呼びたい方は、アプリを開いて目的地を入力し、車種(サービスの種類)を選択するだけで、Didi がお客様のニーズに合った車を自動的に手配します
戻ります。 springcloud に Eureka が登場します。Eureka は Didi のようなもので、サービス プロバイダーの情報の管理と記録を担当します。サービスの呼び出し元は自分でサービスを見つける必要はなく、自分のニーズを Eureka に伝えると、Eureka がニーズに合ったサービスを教えてくれます。同時に、サービスプロバイダーと Eureka は
メカニズムを通じて監視されており、サービスプロバイダーに問題が発生すると、Eureka はそのサービスをサービスリストから自然に削除します。“心跳”
これにより、サービスの自動登録、発見、状態監視が実現します。
Eureka: アドレスを外部に公開するサービス登録センター(クラスターでもよい)
プロバイダ: 起動後にEurekaに自分の情報(アドレス、提供するサービス)を登録する
消費者: Eureka サービスに登録すると、Eureka は対応するサービスのすべてのプロバイダー アドレスのリストを消費者に送信し、定期的に更新します
ハートビート (更新): プロバイダーは http メソッドを通じて Eureka のステータスを定期的に更新します
実践: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 にアクセスしてください
この時点で、Eureka 登録センターは正常に構築されました
以上がspringCloud の Eureka プラクティスの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。