サービスレジストリEurekaの高い可用性を実現するために、通常はEurekaをクラスターに構築します。これにより、Eurekaがダウンしたときに、登録されているサービスプロバイダーに正常にアクセスできるため、高い可用性が実現します。 。
前の記事では、Eurekaのスタンドアロンバージョンの構築について説明しました。前の記事のプロジェクトを続行し、2つの新しいモジュールeureka-server-7002とeureka-server-7003を作成し、7001、7002、7003のapplication.yml構成を変更します。ファイルは次のとおりです。
server:
port: 7001 #eureka服务端的端口号
eureka:
instance:
hostname: eureka7001.com #eureka服务端的实例名称
client:
register-with-eureka: false #不用把自己注册进注册中心
fetch-registry: false
service-url:
#单机 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ #集群绑定,三台eureka互相知道对方
server:
port: 7002 #eureka服务端的端口号
eureka:
instance:
hostname: eureka7002.com #eureka服务端的实例名称
client:
register-with-eureka: false #不用把自己注册进注册中心
fetch-registry: false
service-url:
#单机 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/
server:
port: 7003 #eureka服务端的端口号
eureka:
instance:
hostname: eureka7003.com #eureka服务端的实例名称
client:
register-with-eureka: false #不用把自己注册进注册中心
fetch-registry: false
service-url:
#单机 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
ここでは、eurekaサーバーのインスタンス名が変更されています。これは3つのeurekaサービスを区別するためです。eurekaxxxx.comを使用して(Windowsで)アクセスするため、ホストファイルを変更してドメイン名マッピングを変更する必要があります。3つのeurekaxxxxを次に示します。 Comは127.0.0.1にマップされ、次にdefaultZoneで、クラスターを構築する必要があるため、7001に7002と7003のサービスURLを書き込む必要があります。これにより、3つのeurekaサービスが相互に検知し、バインドしてクラスターを形成します。7001を訪問します
7001の下に7002と7003が表示されます。Eurekaクラスターの場合、すべてのノードは同じであり、優先度の高低の区別はありません。アクセスするEureka接続がタイムアウトすると、自動的に別のEurekaサーバーに接続されるため、シームレスに接続されます。高い可用性を実現するために、これはZookeeperとは異なります。Zookeeperクラスターのマスターがダウンすると、残りのサーバーが選択メカニズムを介してマスターを選択します。このプロセスには約30〜120秒かかります。この期間中、Zookeeper全体がクラスターが利用できないため、動物園の飼育係は高い可用性を達成できません。これが2つの違いです。