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プログラマは、収集するために。