SpringCloudのEurekaServerの高可用性は、登録情報の相互複製機能を実現するために、異なるEurekaが相互に登録することです。それらはすべて同じ情報を持っています。登録センターの1つがダウンしても、プログラムの通常の機能には影響しません。通常、複数のサーバーがありますが、同じサーバー上にある場合もあります。
1つ:今回は2つのサーバーをシミュレートします。これらは同じマシン上にあり、ホストファイルを変更する必要があるためです。
Windosは、C:\ Windows \ System32 \ drivers \ etcのこのパスにあります。最初にデスクトップに移動してから、名前を.txtファイルに変更し、開いてサフィックスを削除し、元の場所に配置します。 。変更可能です。このファイルはデフォルトで読み取り専用です。右クリックしてプロパティを選択し、読み取り専用を削除します。
ホストを開き、以下を変更して2つの127.0.0.1マッピングを追加します
2:プログラムの構成ファイルを変更します
元のapplication.ymlの2をコピーし、次の図に名前を変更します
一般的な構成プロパティはapplication.ymlに記述できます
#文件存放通用的配置
spring:
application:
name: api-eureka
profiles:
active: server1
server:
eviction-interval-timer-in-ms: 4000 # 设置清理的间隔时间,而后这个时间使用的是毫秒单位(默认是60秒)
enable-self-preservation: false #关闭保护模式
renewal-percent-threshold: 0.9
application-server1.ymlの内容
server:
port: 8001
eureka:
instance:
hostname: server1
#hostname:${spring.cloud.client.ipAddress} 不同的主机可以加上这句话
#prefer-ip-address: true 不同的主机可以加上这句话
instance-id: eureka-8001
lease-renewal-interval-in-seconds: 30 # 续约更新时间间隔(默认30秒),eureka客户端向服务端发送心跳的时间间隔
lease-expiration-duration-in-seconds: 90 # 设置心跳的周期间隔,续约到期时间(默认90秒)
client:
# 表示是否注册自身到eureka服务器
register-with-eureka: true
# 是否从eureka上获取注册信息
fetch-registry: false
service-url:
defaultZone: http://server2:8002/eureka/ #/如果是多台机器,用过http://IP地址:8002/eureka/进行相互注册,客户端最好都注册到多个注册中心,虽然注册到一个注册中心也可以实现相互复制,但是如果主eurka挂了,
#/那么后续就无法再注册服务了,这也是网上的服务注册多个到eureka用逗号分隔的原因,只要有一个活的eureka,就可以实现复制
application-server2.ymlの内容
server:
port: 8002
eureka:
instance:
hostname: server2
#hostname:${spring.cloud.client.ipAddress} 不同的主机可以加上这句话
#prefer-ip-address: true 不同的主机可以加上这句话
instance-id: eureka-8002
lease-renewal-interval-in-seconds: 30 # 续约更新时间间隔(默认30秒),eureka客户端向服务端发送心跳的时间间隔
lease-expiration-duration-in-seconds: 90 # 设置心跳的周期间隔,续约到期时间(默认90秒)
client:
# 表示是否注册自身到eureka服务器
register-with-eureka: true
# 是否从eureka上获取注册信息
fetch-registry: false
service-url:
defaultZone: http://server1:8001/eureka/ #/如果是多台机器,用过http://IP地址:8002/eureka/进行相互注册,客户端最好都注册到多个注册中心,虽然注册到一个注册中心也可以实现相互复制,但是如果主eurka挂了,
#/那么后续就无法再注册服务了,这也是网上的服务注册多个到eureka用逗号分隔的原因,只要有一个活的eureka,就可以实现复制
3:2つの登録センターを開始するようにアイデアを構成する
2つの新しいスタートアップ項目を作成し、同じサービスを選択して、異なる構成情報を選択します
次に、これら2つのサービスを順番に開始します。最初のサービスを開始すると、最初のサービスが2番目のサービスに登録されており、この時点では2番目のサービスが開始されていないため、エラーが報告されます。2番目のサービスを開始した後、それは正常です
または、jarパッケージから開始します
java -jar XXXXXX.jar --spring.profiles.active = server1
java -jar XXXXXX.jar --spring.profiles.active = server2
4: Cサービスを開始し、レジストリに登録します
其他服务最好都注册到注册中心,当然注册到某一个注册中心也可以,本次注册到一个注册中心,
defaultZone: http://localhost:8001/eureka/
Cサービスを開始した後、server1登録センターのアドレスを入力し、Cサービスが登録されていることを確認すると、2番目のserver2登録センターが表示されます。
server2の登録センターのアドレスを入力すると、Cサービスも登録されていることがわかります。Cサービスはserver1にのみ登録しましたが、server2にもあり、情報が同期されていることを示しており、最初の登録センターが表示されます。 。