2017-03-23 10 views
13

मैं यूरेका से सेवा खोज के लिए कौंसुल को स्थानांतरित करने के लिए प्रयास कर रहा हूँ और एक मुद्दा हो रहा है - मेरे प्रवेश द्वार सेवा रजिस्टर और अपने ग्राहक सेवा रजिस्टर, लेकिन प्रवेश द्वार सेवा करेंगे के लिए नहीं मार्ग अनुरोध ग्राहक सेवा स्वचालित रूप से। रूट्स मैंने विशेष रूप से गेटवे कंट्रोलर में परिभाषित किया है जो काम को ठीक करने के लिए फीन क्लाइंट का उपयोग करता है, लेकिन पहले (यूरेका के साथ) मैं "/ ग्राहक सेवा/ब्लाह" जैसे किसी भी मार्ग से अनुरोध कर सकता हूं (जहां ग्राहक सेवा पंजीकृत नाम है) और गेटवे सिर्फ अनुरोध को डाउनस्ट्रीम माइक्रोस्कोप पर अग्रेषित करेगा।ऑटो प्रॉक्सी सेवाओं

यहाँ मेरी प्रवेश द्वार bootstrap.yml है (यह बूटस्ट्रैप और नहीं आवेदन में है क्योंकि मैं भी config के लिए सलाहकार का उपयोग कर रहा)

spring: 
    application: 
    name: gateway-api 
    cloud: 
    consul: 
     config: 
     watch: 
      wait-time: 30 
     discovery: 
     prefer-ip-address: true 
     instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}} 
+0

आप वाणिज्य दूत में नमूना application.yml या आवेदन विन्यास दे सकते हैं? मैं रूटिंग के लिए कंसुल और ज़ुउल का उपयोग करता हूं। गेटवे सेवा के रूप में उपयोग करें। यह सही ढंग से काम करता है। – wthamira

+1

वाणिज्य दूत ही उपयोग कर सकते हैं के रूप में यूरेका – wthamira

+0

Turnss बाहर मैं अपने classpath से Zuul निकाल दिया था। – Gandalf

उत्तर

12

इस मैं तुम्हें अपनी समस्या को हल करने के लिए इस मदद लगता है की कोशिश करो ..

यह मैं प्रवेश द्वार के लिए और सभी आवेदनों

के लिए इस निर्भरता का उपयोग अपने प्रवेश द्वार bootstrap.yml फ़ाइल

spring: 
    application: 
    name: gateway-service 
--- 

spring: 
    profiles: default 
    cloud: 
    consul: 
     config: 
     prefix: config/dev/ 
     format: FILES 
     host: localhost 
     port: 8500 
     discovery: 
     prefer-ip-address: true 
spring.profiles.active: dev 

है मेरी विन्यास सर्वर के रूप में 210

<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-consul-discovery</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-consul-config</artifactId> 
</dependency> 

वाणिज्य दूत उपयोग। तो मैं इस विन्यास में कंसुल जोड़ता हूं। विन्यास पथ

zuul: 
    prefix: /api 
    ignoredServices: '*' 
    host: 
    connect-timeout-millis: 20000 
    socket-timeout-millis: 20000 

    routes: 
    customer-service: 
     path: /customer/** 
     serviceId: customer-service 
     stripPrefix: false 
     sensitiveHeaders: Cookie,Set-Cookie 

गेटवे सेवा वसंत बूट आवेदन की तरह

नीचे
@SpringBootApplication 
@EnableDiscoveryClient 
@EnableZuulProxy 
public class GatewayServiceApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(GatewayServiceApplication.class, args); 
    } // End main() 

}// End GatewayServiceApplication 

अगर आप आप routs उपयोग कर सकते हैं अपना रास्ता पसंद करते हैं इस तरह आपके आवेदन कर व्याख्या /config/dev/gateway.yml है।

नमूना वाणिज्य दूत विन्यास enter image description here

+0

तो मैं इस क्योंकि यह मुझे सही दिशा में धक्का दे दिया स्वीकार कर लिया। असली मुद्दा जब मैं हटाया यूरेका और क्लाउड-कॉन्फ़िग मैं था भी, अनजाने में, Zuul हटा दिया, है। जोड़ा वापस निर्भरता और BAM रूप Zuul! हालांकि मैंने आपकी उपसर्ग कॉन्फ़िगरेशन का उपयोग किया था, उस सेटिंग के बारे में नहीं पता था। – Gandalf

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