ユーレカサーバークラスタのSpringCloud可用性

A:なぜビルドユーレカサーバークラスタ

分散システムでは、サービスレジストリは、基盤の最も重要な部分である、それは単一のポイントである場合状態でいつでもサービスを提供する必要があり、その後、壊滅的な経験は、失敗です。その可用性を維持するためには、クラスタを使用することは良い解決策です。ユーレカ我々は唯一Eureke Server構成の他の利用可能なserviceURLのに必要なので、お互いに登録することにより、高可用性の展開を達成するためには、高可用性の展開を実現することができます。次のようにユーレカクラスタリング・フレームワークは、次のとおりです。 

ここに画像を挿入説明

2:ユーレカサーバーを構築します

前我々は変換これに基づいて、ユーレカサーバーのスタンドアロンバージョンを構築しました。

2.1まず、私はマルチプロファイル形式を使用し、コンフィギュレーション・ファイルapplication.ymlユーレカ・サーバーを変更します。

Application.yml 3つのファイル、それぞれapplicatiom-peer1.yml、applicatiom-peer2.yml、applicatiom-peer3.ymlを作成します 

ここに画像を挿入説明

次のようにapplicatiom-peer1.ymlが配置されました:

#高可用的Eureka-Server 集群 peer1
spring:
  application:
    name: Eureka-Server-peer  #应用名称,也是服务注册的名称

server:
  port: 8001  #开启端口

eureka:
  instance:
    prefer-ip-address: true #提交ip信息
    status-page-url-path: /actuator/info #信息查询的url link
    health-check-url-path: /actuator/health #健康检查的url
    hostname: peer1    #主机名
  client:
    #在默认情况下,Eureka servce 会向自己注册,这时需要设置registerWithEureka和fetchRegistry 为false,防止自己注册自己
    #在Eureka集群中,允许注册中心自己作为服务向其他注册中心注册自己,这样就可以形成一组相互注册的注册中心,他们互相同步服务清单,做到了我们要的高可用
    #是否将自己注册到Eureka Server 默认为true
    registerWithEureka: true
    #是否从Eureka Server查询注册信息
    fetchRegistry: true
    #服务注册地址
    serviceUrl:
      #与Eureka Server交互的地址,查询服务和服务注册都需要依赖这个地址,
      #默认为http://localhost:8761/eureka,  多个地址用","分割
      defaultZone: http://peer2:8002/eureka/,http://peer3:8003/eureka/
  server:
    #enable-self-preservation: true        #开启自我保护模式
    #eviction-interval-timer-in-ms: 4000    #清理服务间隔4s,默认60*10000 复制代码

次のようにapplicatiom-peer2.ymlが配置されました:

#高可用的Eureka-Server 集群 peer2
spring:
  application:
    name: Eureka-Server-peer  #应用名称,也是服务注册的名称

server:
  port: 8002  #开启端口

eureka:
  instance:
    prefer-ip-address: true #提交ip信息
    status-page-url-path: /actuator/info #信息查询的url link
    health-check-url-path: /actuator/health #健康检查的url
    hostname: peer2    #主机名
  client:
    #在默认情况下,Eureka servce 会向自己注册,这时需要设置registerWithEureka和fetchRegistry 为false,防止自己注册自己
    #在Eureka集群中,允许注册中心自己作为服务向其他注册中心注册自己,这样就可以形成一组相互注册的注册中心,他们互相同步服务清单,做到了我们要的高可用
    #是否将自己注册到Eureka Server 默认为true
    registerWithEureka: true
    #是否从Eureka Server查询注册信息
    fetchRegistry: true
    #服务注册地址
    serviceUrl:
      #与Eureka Server交互的地址,查询服务和服务注册都需要依赖这个地址,
      #默认为http://localhost:8761/eureka,  多个地址用","分割
      defaultZone: http://peer1:8001/eureka/,http://peer3:8003/eureka/
  server:
    #enable-self-preservation: true        #开启自我保护模式
    #eviction-interval-timer-in-ms: 4000    #清理服务间隔4s,默认60*10000 复制代码

次のようにapplicatiom-peer3.ymlが配置されました:

#高可用的Eureka-Server 集群 peer2
spring:
  application:
    name: Eureka-Server-peer  #应用名称,也是服务注册的名称

server:
  port: 8003  #开启端口

eureka:
  instance:
    prefer-ip-address: true #提交ip信息
    status-page-url-path: /actuator/info #信息查询的url link
    health-check-url-path: /actuator/health #健康检查的url
    hostname: peer3    #主机名
  client:
    #在默认情况下,Eureka servce 会向自己注册,这时需要设置registerWithEureka和fetchRegistry 为false,防止自己注册自己
    #在Eureka集群中,允许注册中心自己作为服务向其他注册中心注册自己,这样就可以形成一组相互注册的注册中心,他们互相同步服务清单,做到了我们要的高可用
    #是否将自己注册到Eureka Server 默认为true
    registerWithEureka: true
    #是否从Eureka Server查询注册信息
    fetchRegistry: true
    #服务注册地址
    serviceUrl:
      #与Eureka Server交互的地址,查询服务和服务注册都需要依赖这个地址,
      #默认为http://localhost:8761/eureka,  多个地址用","分割
      #defaultZone: http://peer1:8001/eureka/,http://peer2:8002/eureka/
  server:
    #enable-self-preservation: true        #开启自我保护模式
    eviction-interval-timer-in-ms: 4000    #清理服务间隔4s,默认60*10000 复制代码

ここで、有効-自己保存の設定:真の#は、デフォルトの設定ではリンプホームモードをオン、ユーレカServerのデフォルトの90年代はなく、しばしばマイクロサービスクロスプロセス呼び出しの、クライアントのハートビート、インスタンスの取り消しを取得していない、ネットワークトラフィックが多い顔こうしたマイクロサービスの状態が正常であるが、ネットワークパーティションが失敗のため、サービスのユーレカServerインスタンスのキャンセルはマイクロサービスのほとんどのようになりますように、さまざまな問題が明らかサービスも問題ありませんので、それは、非常に危険である、使用できません。この問題を解決するために、ユーレカはユーレカサーバーで、次のパラメータを設定することにより、自己保護機構を有する、保護メカニズムを開始します。 

有効-自己保存:真 

その原理は、ユーレカServerが(ネットワーク障害を送信する場合があります)あまりにも多くのクライアントを失った短い時間でノードたときにネットワーク障害が返信する際に、そのノードは、自己保護モードに任意のマイクロサービスオフもはや書き込みを行っていないということですノードは自動的に自己保護モードを終了します。

(開発で提供されていない可能性があり、開発を促進します) 

2.2 application.ymlの内容を変更します。

#高可用的Eureka-Server 集群
spring:
  profiles:
    active: peer1 复制代码

2.3我々は、Windows上でクラスタを構築するだけのマシンを、構築されているので、あなたは、ホスト名のマッピングを追加し、HOSTSファイルを変更する必要があります。

変更C:\ WINDOWS \ System32に\ drivers \ etc \ hostsファイル

127.0.0.1 localhost
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3 复制代码

アイデアスタートモード、およびコンフィギュレーションファイル名で提供さ2.4は3アプリケーションを起動するために提供され、springbootは名前が付けられてい.XXX用途向け{プロファイル}にプロファイルを規定しました

ここに画像を挿入説明

ここに画像を挿入説明

8001は、localhost:8002、localhostを:8003、以下の結果を与えるために3は、同時に各アクセスはlocalhostを開始しました:

ここに画像を挿入説明

ここに画像を挿入説明

ここに画像を挿入説明

3:変更ユーレカ・クライアントのクライアントプロジェクトのプロフィール

コードは以下の通りであります:

server:
  port: 8762

spring:
  #配置程序名为eureka-client
  application:
    name: eureka-client

eureka:
  client:
    #服务注册地址
    serviceUrl:
      #注意: Eureka Server 的注册地址
      #将服务提供者注册到三个Eureka Server中去
      defaultZone: http://peer1:8001/eureka/,http://peer2:8002/eureka/,http://peer3:8003/eureka/
      #http://localhost:8761/eureka/  复制代码

スタートユーレカ・クライアント・プロジェクト、次の結果:

ここに画像を挿入説明

ここに画像を挿入説明

ここに画像を挿入説明

その他の技術資料は、マイクロチャネル公衆番号に注意を払うを喜ば:Javaプログラマは、収集するために。



おすすめ

転載: juejin.im/post/5dfcbc1e6fb9a016230acf8d