DiscoveryClient не может обновить свой кеш! Статус 404
Я установил Intershop Commerce Management 7.8, и все работает нормально, за исключением того, что я получаю постоянные ошибки в файле журнала ошибок.
Eureka работает, я могу получить доступ к пользовательскому интерфейсу Eureka, используя http://localhost:8760/ Сервер приложений и Solr перечислены и работают.
URL-адрес в eureka-client.properties имеет значение: http://localhost:8760/eureka
Есть идеи, что здесь не так?
Вот некоторые записи об ошибках:
[2017-03-07 10:39:10.865 +0000] ERROR localhost ES1 appserver0 [] [] com.netflix.discovery.DiscoveryClient [] [] [] [] "DiscoveryClient-CacheRefreshExecutor-0" DiscoveryClient_DEVELOPER-SOLRSERVER/localhost_appserver0 - was unable to refresh its cache! status = Bad status: 404 java.lang.RuntimeException: Bad status: 404
at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1589)
at com.netflix.discovery.DiscoveryClient.makeRemoteCallWithFollowRedirect(DiscoveryClient.java:1460)
at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1443)
at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1394)
at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1136)
at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:1042)
at com.netflix.discovery.DiscoveryClient.access$2100(DiscoveryClient.java:123)
at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.java:1900)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-03-07 10:39:14.269 +0000] ERROR localhost ES1 appserver0 [] [] com.netflix.discovery.DiscoveryClient [] [] [] [] "DiscoveryClient-CacheRefreshExecutor-0" Can't contact any eureka nodes - possibly a security group issue? java.lang.RuntimeException: Bad status: 404
at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1589)
at com.netflix.discovery.DiscoveryClient.makeRemoteCallWithFollowRedirect(DiscoveryClient.java:1460)
at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1443)
at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1394)
at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1136)
at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:1042)
at com.netflix.discovery.DiscoveryClient.access$2100(DiscoveryClient.java:123)
at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.java:1900)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-03-07 10:39:14.270 +0000] ERROR localhost ES1 appserver0 [] [] com.netflix.discovery.DiscoveryClient [] [] [] [] "DiscoveryClient-CacheRefreshExecutor-0" DiscoveryClient_DEVELOPER-APPSERVER/localhost_ES1_appserver0 - was unable to refresh its cache! status = Bad status: 404 java.lang.RuntimeException: Bad status: 404
at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1589)
at com.netflix.discovery.DiscoveryClient.makeRemoteCallWithFollowRedirect(DiscoveryClient.java:1460)
at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1443)
at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1394)
at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1136)
at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:1042)
at com.netflix.discovery.DiscoveryClient.access$2100(DiscoveryClient.java:123)
at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.java:1900)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2 ответа
Решение
Существует простое решение этой проблемы. Клиент eureka немного суетлив: используйте " http://localhost:8760/eureka/" вместо " http://localhost:8760/eureka". Надеюсь, это поможет.
Просто вы можете добавить следующий скрипт в свой файл application.yml, и он будет работать нормально.
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/