Введение
Так что в целом все работает нормально.Но я замечаю, что иногда после перезапуска некоторые из наших сервисов регистрируются как localhost.
Это приводит к тому, что администратор весенней загрузки сходит с ума, и начинает спамить нас, что сервисы не работают.
Итак, мы начинаем получатьследующие электронные письма:
SEQUENCE-SERVICE (52c98f2235a2) is OFFLINE
Instance 52c98f2235a2 changed status from OFFLINE to OFFLINE
Status Details
exception
io.netty.channel.AbstractChannel$AnnotatedConnectException
message
Connection refused: no further information: localhost/127.0.0.1:8007
Registration
Service Url http://localhost:8007/
Health Url http://localhost:8007/sequence-service/v1/actuator/health
Management Url http://localhost:8007/actuator
Инфраструктура
У нас есть три сервера.Итак, у нас есть два сервера, на которых запущены по одному eureka каждый, а также на них работают микросервисы.
У нас есть третий сервер, на котором запущены метрики, и администратор весенней загрузки.
Конфигурация Eurekaв основном:
Eureka-0
server.port=7995
eureka.instance.hostname=prod
eureka.instance.appname= discovery-service
eureka.client.registerWithEureka=true
eureka.client.fetchRegistry=true
eureka.client.serviceUrl.defaultZone=http://admin:admin@prod1:7995/eureka/
spring.application.name = discovery-service
security.user.name=admin
security.user.password=admin
spring.security.user.name=admin
spring.security.user.password=admin
endpoints.health.sensitive=false
management.endpoints.web.exposure.include=info, health
spring.profiles.active=prod,mbakTest
eureka.instance.metadata-map.user.name=${security.user.name}
eureka.instance.metadata-map.user.password=${security.user.password}
Eureka-1
server.port=7995
eureka.instance.hostname=prod1
eureka.instance.appname= discovery-service
eureka.client.registerWithEureka=true
eureka.client.fetchRegistry=true
eureka.client.serviceUrl.defaultZone=http://admin:admin@prod:7995/eureka/
spring.application.name = discovery-service
security.user.name=admin
security.user.password=admin
spring.security.user.name=admin
spring.security.user.password=admin
eureka.instance.metadata-map.user.name=${security.user.name}
eureka.instance.metadata-map.user.password=${security.user.password}
Sequence-Service
#Eureka configuration
eureka.client.enabled=true
eureka.client.healthcheck.enabled=true
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=true
eureka.instance.leaseRenewalIntervalInSeconds=15
eureka.instance.leaseExpirationDurationInSeconds=30
eureka.client.serviceUrl.defaultZone=${EUREKA_SERVICE_URL:http://admin:admin@prod:7995/eureka/,http://admin:admin@prod1:7995}/eureka/
Вопросы
Итак, у меня два вопроса
1) Так что я не понимаю, почему иногда все хорошо, а иногда мыПолучите письма от Spring-boot-admin, сообщающие нам, что сервис не работает.Но сервис не работает - он зарегистрирован на localhost.Когда мы перезапускаем его, все в порядке.Обычно это происходит после перезапуска.
2) Является ли эта конфигурация правильной и надежной?Я думаю, что если один eureka или сервер выйдет из строя, другой займет его место.