Attualmente sto affrontando un problema in cui Eureka non annulla la registrazione di un servizio registrato. Ho estratto l'esempio del server Eureka direttamente da git hub e ho apportato una sola modifica, eureka.enableSelfPreservation = false
. Il mio application.yml assomiglia a questo:Eureka non annulla mai la registrazione di un servizio
server:
port: 8761
eureka:
enableSelfPreservation: false
client:
registerWithEureka: false
fetchRegistry: false
server:
waitTimeInMsWhenSyncEmpty: 0
Ho letto che se l'85% dei servizi registrati interrompere l'erogazione di battiti cardiaci in 15 minuti, Eureka assume il problema è la rete correlata e non de-registrare i servizi che non rispondono. Nel mio caso ho solo un servizio in esecuzione, quindi ho disabilitato la modalità di autoconservazione. Sto improvvisamente uccidendo il processo e Eureka lascia il servizio registrato per quella che sembra una quantità indefinita di tempo.
application.yml del mio cliente si presenta così:
eureka:
instance:
leaseRenewalIntervalInSeconds: 3
client:
healthcheck:
enabled: true
serviceUrl:
defaultZone: http://localhost:8761/eureka/
appInfo:
replicate:
interval: 3
initial:
replicate:
time: 3
spring:
rabbitmq:
addresses: ${vcap.services.${PREFIX:}rabbitmq.credentials.uri:amqp://${RABBITMQ_HOST:localhost}:${RABBITMQ_PORT:5672}}
Il mio obiettivo è quello di creare una demo in cui Eureka rileva rapidamente il servizio non è più in esecuzione e un altro servizio che viene avviato può registrare rapidamente se stessa.
A partire da ora, una volta avviato il client eureka, si registra in 3 secondi. Semplicemente non si annulla mai quando il servizio viene interrotto bruscamente. Dopo aver eliminato il servizio, viene visualizzato il dashboard di Eureka:
EMERGENZA! EUREKA POTREBBE ESSERE INCORRETTAMENTE RECLAMI, IN QUANTO NON SONO. I RINNOVI SONO MENO DI THRESHOLD E QUINDI QUINDI NON SI STANNO SCADUTI PER ESSERE SICURI.
Come posso evitare questo comportamento?
Quale versione di spring-cloud stai usando? – spencergibb
Ho due progetti in corso, sto usando 1.1.0 nell'esempio che ho tirato direttamente da GitHub. Nel mio progetto attuale sto usando spring-cloud-starter-config 1.0.3. Nemmeno i clienti si stanno registrando. – lp1776
Quanto tempo hai effettivamente aspettato? Posso impiegare del tempo per annullare la registrazione sulle impostazioni predefinite. –