A alta disponibilidade do servidor Eureka da Spring Cloud é que diferentes Eureka se registram entre si, de modo a realizar a função de replicação mútua das informações de registro. Todos eles têm as mesmas informações. Quando uma das centrais de registro cai, isso não afeta o funcionamento normal do programa. Geralmente, existem vários servidores, mas também podem estar no mesmo servidor.
Um: desta vez é para simular 2 servidores, porque eles estão na mesma máquina, então o arquivo Host precisa ser modificado
Windos está neste caminho, C: \ Windows \ System32 \ drivers \ etc. Você pode levá-lo para a área de trabalho primeiro e, em seguida, renomeá-lo para um arquivo .txt, abri-lo e remover o sufixo e colocá-lo em seu local original . Ele pode ser modificado. Este arquivo é somente leitura por padrão. Clique com o botão direito para selecionar as propriedades e remover somente leitura.
Abra o Host, modifique o seguinte para adicionar dois mapeamentos 127.0.0.1
Dois: modificar o arquivo de configuração do programa
Copie 2 do application.yml original e renomeie-o para a figura a seguir
As propriedades gerais de configuração podem ser escritas em 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
Conteúdo de 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,就可以实现复制
Conteúdo de 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,就可以实现复制
Três: Configurar ideia para iniciar 2 centros de registro
Crie dois novos itens de inicialização, selecione o mesmo serviço e escolha informações de configuração diferentes
Em seguida, inicie esses dois serviços sucessivamente. Quando o primeiro serviço for iniciado, um erro será relatado, porque o primeiro serviço foi registrado no segundo serviço e o segundo serviço não foi iniciado neste momento. Após iniciar o segundo serviço, É normal
Ou comece via pacote jar
java -jar XXXXXX.jar --spring.profiles.active = server1
java -jar XXXXXX.jar --spring.profiles.active = server2
4: Inicie o serviço C e registre-se no registro
其他服务最好都注册到注册中心,当然注册到某一个注册中心也可以,本次注册到一个注册中心,
defaultZone: http://localhost:8001/eureka/
Depois de iniciar o serviço C, digite o endereço do centro de registro server1 e descubra que o serviço C está registrado, e você pode ver o segundo centro de registro server2
Insira o endereço do centro de registro do servidor2 e descubra que o serviço C também está registrado. Registramos apenas o serviço C no servidor1, mas também está no servidor2, indicando que a informação está sincronizada, e você pode ver o primeiro centro de registro .