記事ディレクトリ
ユーレカ
この記事ではまず、Eurekaのアプリケーションシナリオとコード実装事例について説明し、Eurakaには複数のサービスモジュールが登録されており、サービス間の呼び出し実装については次の記事で説明します!
Eurekaコンポーネントはどのような機能を実現できますか
エウレカは主に次のことを行います。
注册发现中心
服务注册与发现的组件
CAP原則とは何ですか?
エウレカといえばCAPですが、CAP原則とは何なのか、一緒に見ていきましょう!
CAP 原则:
CAP 定理とも呼ばれ、分散システムを指します。
CAP 原則の 3 つの特徴:
一致性 (Consistency):
クラスターでは、3 台のマシンのデータは一貫しています。
可用性I(Availability):
ノードがハングアップしても、クラスター全体は外部サービスを提供し続けることができます。
分区容错性 (Partition tolerance):
計算機室のネットワークやパーティションなどの理由により、各マシン内のデータが一時的に不整合となる場合があります。
(この機能は避けられません) CAP 原則は、これら 3 つの要素が同時に達成できるのは最大 2 点までであり、3 つすべてに配慮することは不可能であることを意味します。
Eureka
そうは言っても、とZookeeper
?の違いについて触れておきます。
Zookeeper:
CP 原則に従う
Eureka:
AP 原則: AP の高可用性に注意する
サービス登録コードの練習
全体的なコア実装図
登録センターを構築する
次に、コードを通じて Eureka の使用を迅速に実現する方法を詳しく説明します。
赤枠でマークしたプロジェクトのみをビルドする必要があり、他のプロジェクトはビルドする必要はありません。サービス登録センタークラスターは以前に作成したので、登録センターがいくつか存在します
まず、ディレクトリ構造を構築します。Maven プロジェクトは、
注意:新增项目的时候选择Java8
私の写真にあるものに従って構築されます。ここでは、新しいプロジェクトのプロセスを 1 つずつ説明しません。理解できない場合は、プライベート メッセージを送ってください。
最初のステップ
は、新しい登録センターを作成することです。201-eureka-server
番目のステップは、スタートアップ クラスを
変更して注釈を追加することです。つまり、Eureka 登録センターを開くには、スタートアップ クラスで変更する必要があるローカル関数は 1 つだけです。ソースコードは次のとおりです。EurekaServerApplication
@EnableEurekaServer
添加开启Eureka注解
package com.powernode;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer //开启Eureka的注册中心的功能
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
3 番目のステップは、yml ファイル (設定ファイル) のソース コードを次のように
変更することです。各設定の意味について 1 つずつコメントを追加し、最初にそれを私流に変更します。
#单机
server:
port: 8761 # eureka的默认端口
spring:
application:
name: eureka-server # 应用名称 不要使用特殊字符
eureka: #Eureka的配置分三类 server client 实例的 eureka-server既是服务端又是客户端
server: #服务端每间隔多少毫秒定期删除的操作(默认是30000(30秒))
eviction-interval-timer-in-ms: 10000
renewal-percent-threshold: 0.85 # 续约百分比 超过85的应用没有和你续约 那么erueka不会踢除任何应用
instance: # 实例的配置
instance-id: ${
eureka.instance.hostname}:${
spring.application.name}:${
server.port}} # 主机名称 : 应用名称 : 端口号
# hostname: localhost # 主机名称 或者 服务的IP
# prefer-ip-address: true #以IP的形式显示具体的服务信息
# lease-renewal-interval-in-seconds: 5 # 服务实例的续约的时间间隔
4 番目のステップ
は、 pom ファイルを変更すること
注意:
です01-eureka-server的pom文件
。これは、この部分で Spring Cloud バージョンと Spring Boot バージョンを指定する必要があるためです。
赤でマークしたボックスに従って変更します
サービスAのビルド
サービス A に対応するプロジェクト名は次のとおりです。02-eureka-client-a
間違った場所を変更しないでください。
最初のステップ
は、まず yml 構成ファイルを変更することです。
ソースコードは以下の通りです。
各設定の意味を一つずつコメントを追加し、まずは自分流に変更していきます。
server:
port: 8702 # 客户端端口没有要求
spring:
application:
name: eureka-client-a
# 注册 发送信息
eureka:
client:
service-url: # 指定注册地址
defaultZone: http://localhost:8761/eureka
register-with-eureka: true # 可以不往eureka-server注册
fetch-registry: true # 应用是否去拉取服务列表到本地
# 每个10秒中去注册中心重新进行拉取 时间越短脏毒越少 性能消耗大
registry-fetch-interval-seconds: 10 # 为了缓解服务列表的脏毒问题
instance:
hostname: localhost # 应用的主机名称 最好谢主机ip
instance-id: ${
eureka.instance.hostname}:${
spring.application.name}:${
server.port}
prefer-ip-address: true # 显示ip
lease-renewal-interval-in-seconds: 10 # 实例续约的时间
2 番目のステップ
は、pom ファイルを変更し、図に従って変更することです。
サービスBのビルド
サービス A に対応するプロジェクト名は次のとおりです。02-eureka-client-b
間違った場所を変更しないでください。
サービス A と同様に、
最初のステップは
yml 構成ファイルを変更することです。
ソースコードは以下の通りです。
各設定の意味を一つずつコメントを追加し、まずは自分流に変更していきます。
server:
port: 8703 # 客户端端口没有要求
spring:
application:
name: eureka-client-b
# 注册 发送信息
eureka:
client:
service-url: # 指定注册地址
defaultZone: http://localhost:8761/eureka
2 番目のステップ
は、pom ファイルを変更し、図に従って変更することです。
サービスを開始する
レジストリを起動する
最初に登録センターを起動し01-eureka-server
、起動方法を開始します。起動ファイルをクリックし、緑色の三角形をクリックして実行モードまたはデバッグ モードを選択します。起動が服用A和服务B
成功したことを示す下の図が表示され、リターンが表示されます。ステータスコードは204です。、ブラウザのアドレスバーに直接入力します。
注意:重点来了非常重点
http://localhost:8761/
http://localhost:8761/
入力後にこのページに戻った場合は、恭喜你Eureka注册中心启动成功!
サービスの開始に進みます。
サービスAを開始する
実行モードでもデバッグ モードでも、これが開始方法です。
起動に成功すると下図のように表示され、ステータス表示は204となります。
注意:重点来了非常重点
、ブラウザのアドレス バーに直接入力するhttp://localhost:8761/
か、このアドレスを開いたばかりで、F5 キーを直接押してページを更新します。
登録センターの上に、次のアプリケーション名をEUREKA-CLIENT-A
持つサービスが登録されていることが明確にわかります。非常に良いので、サービス B の開始を続けます。
サービスBを開始する
サービス B は依然としてサービス A と同じ方法で開始されています。現在、サービス A とサービス B の登録センターがあることがはっきりとわかります。三个服务正在运行
同じ URL の下にあるブラウザに戻り、F5 キーを押して更新します。
很好
, サービス B も登録されていることがわかります。
結論
ここまでで、登録センターと 2 つのサービス モジュールの登録機能の実現が完了しましたが、プライベート メッセージを理解していないブロガー向けに、私のプロジェクトの構築方法とコード実装方法によると、他のコンポーネントがあることがわかります。
は一般的に使用されていますSpring Cloud组件
。2 番目の図には各コンポーネントのサービスもあります。nacosファイル構成センターの構築、手書きのゲートウェイ、ヒューズなどはすべてソース コードです。必要なブロガーは、無料でプライベート メッセージを送信できます。分からないことがあれば無料でお答えしますので、皆さんのお役に立てれば幸いです!
今回の共有はこれで終わり、次号ではうさぎを共有してリモート通話を実現します。