2015-09-16 9 views
23

मुझे वर्तमान में एक समस्या का सामना करना पड़ रहा है जहां यूरेका एक पंजीकृत सेवा को पंजीकृत नहीं करता है। मैंने सीधे यूटका सर्वर उदाहरण को गिट हब से खींच लिया है और केवल एक ही बदलाव किया है, eureka.enableSelfPreservation = false। मेरे application.yml इस तरह दिखता है:यूरेका कभी भी एक सेवा को अनियंत्रित नहीं करता

server: 
    port: 8761 
eureka: 
    enableSelfPreservation: false 
    client: 
    registerWithEureka: false 
fetchRegistry: false 
    server: 
    waitTimeInMsWhenSyncEmpty: 0 

मैं पढ़ा है कि अगर पंजीकृत सेवाओं का 85% 15 मिनट के भीतर दिल की धड़कन डिलीवरी बंद, यूरेका मुद्दा संबंधित नेटवर्क है मान लिया गया और सेवाओं नहीं डी-रजिस्टर है कि जवाब नहीं दे रहे हैं। मेरे मामले में मेरे पास केवल एक सेवा चल रही है, इसलिए मैंने स्वयं-संरक्षण मोड अक्षम कर दिया है। मैं अचानक प्रक्रिया को मार रहा हूं और यूरेका उस सेवा को छोड़ देता है जो अनिश्चित काल की तरह दिखता है।

मेरे ग्राहक की application.yml इस तरह दिखता है:

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}} 

मेरा लक्ष्य एक डेमो जहां यूरेका जल्दी से सेवा अब चल रहा है और एक अन्य सेवा है कि शुरू कर दिया है जल्दी ही रजिस्टर कर सकते हैं का पता लगाता है बनाने के लिए है।

अभी तक, एक बार यूरेका क्लाइंट शुरू होने के बाद, यह 3 सेकंड में पंजीकृत होता है। जब सेवा अचानक समाप्त हो जाती है तो यह कभी भी अन-पंजीयक नहीं होता है। सेवा को मारने के बाद, यूरेका डैशबोर्ड पढ़ता है:

इमरजेंसी! यूरेका असल में दावा कर सकते हैं जब वे नहीं हैं। पुनर्विक्रय कम से कम श्रमिक हैं और संस्थानों को सुरक्षित होने की आवश्यकता नहीं है।

मैं इस व्यवहार को कैसे रोक सकता हूं?

+0

वसंत-बादल का कौन सा संस्करण आप उपयोग कर रहे हैं? – spencergibb

+0

मेरे पास दो परियोजनाएं चल रही हैं, उदाहरण के लिए मैं 1.1.0 का उपयोग कर रहा हूं कि मैंने सीधे गिटहब से खींचा। मेरी वास्तविक परियोजना में मैं वसंत-क्लाउड-स्टार्टर-कॉन्फ़िगर 1.0.3 का उपयोग कर रहा हूं। न तो ग्राहकों को डी-रजिस्टर कर रहे हैं। – lp1776

+0

आपने वास्तव में कब तक इंतजार किया है? मैं डिफ़ॉल्ट सेटिंग्स पर पंजीकरण करने के लिए कुछ समय ले सकता हूं। –

उत्तर

24

मुझे एहसास हुआ कि आत्म संरक्षण मोड वास्तव में अक्षम नहीं किया जा रहा था। यह पता चला वास्तविक संपत्ति

eureka.server.enableSelfPreservation=false 

है (DefaultEurekaServerConfig कोड देखें) है, जो मैं कहीं भी दर्ज नहीं पाया है। इसने मेरे मुद्दे को हल किया।

+1

इस समस्या के लिए प्रलेखन रेपो के लिए एक पुल अनुरोध शायद कई अन्य लोगों के लिए बहुत उपयोगी होगा। ... अगर किसी ने पहले से ऐसा नहीं किया है। – DtechNet

18

मैं स्थापित करने नीचे

महत्व देता द्वारा सेवा de-पंजीकरण काम बनाया यूरेका सर्वर application.yml

eureka: 
    server: 
    enableSelfPreservation: false 

सेवा application.yml

eureka: 
    instance: 
    leaseRenewalIntervalInSeconds: 1 
    leaseExpirationDurationInSeconds: 2 

पूर्ण उदाहरण यहाँ है https://github.com/ExampleDriven/spring-cloud-eureka-example

संबंधित मुद्दे