2016-03-24 9 views
5

के बीच संचार में सुधार कैसे करें हमारी कंपनी में हम वसंत बूट, माइक्रोसर्विसेज, वसंत बादल आदि का उपयोग करते हैं ... हम इस आधारभूत संरचना से खुश हैं, लेकिन मुझे अभी भी कुछ चिंताएं हैं: हम बाकी का उपयोग कॉम्यूनिकेशन प्रोटोकॉल और यहां तक ​​कि बाकी के रूप में करते हैं अगर मुझे यह बहुत अच्छा लगता है, तो मुझे अभी भी लगता है कि हम कुछ बेहतर खोज सकते हैं। बाकी के साथ:माइक्रोस्कोर्सेस

  • आप एक ग्राहक और एक सर्वर (restcontroller) उपयोग करने की आवश्यकता
  • आप सर्वर URI जानने की जरूरत, http विधि (POST, GET, PUT,...)
  • तुम्हें पता है, जहां परम जाना चाहिए (शरीर, क्वेरी स्ट्रिंग)
  • ....

आपको नहीं लगता कि यह बहुत आसान है अगर हम RMI की तरह कुछ था होगा है? मुझे पता है कि यह एक पुरानी तकनीक है (और यह भाषा स्वतंत्र नहीं है), लेकिन इससे जीवन आसान हो गया (आपको बस एक इंटरफेस और इसके कार्यान्वयन की आवश्यकता है)।

चारों ओर खोजना, मुझे कुछ दिलचस्प परियोजनाएं मिलीं जैसे फीन क्लाइंट या वसंत क्लाउड स्ट्रीम, लेकिन उनमें से कोई भी चांदी की गोली नहीं लगती है।

इस विषय के बारे में आप क्या सोचते हैं? क्या यह एक समस्या है जिसे आप महसूस करते हैं? यदि हां, तो आप इसका कैसे संपर्क करते हैं?

अग्रिम धन्यवाद।

उत्तर

0

आप सेवा खोज और Client-Side Load Balancing with Ribbon के रूप में Spring Cloud Netflix and Eureka का उपयोग कर सकते हैं।

उन लोगों की सहायता से आप सेवा स्थानों के बजाय 'सेवा नाम' द्वारा माइक्रोस्कोप के बीच संवाद कर सकते हैं।

this demo देखें। यह microservices संचार undestanding के लिए बहुत उपयोगी होना चाहिए।

यहां हमारे बीच संचार के लिए 2 सरल माइक्रोस्कोर्सेस और डिस्कवरी सेवा है।

+0

हाँ हम उनका उपयोग करते हैं। लेकिन उनके साथ हम यूआरआई डिस्कवरी इश्यू (और संतुलन) को हल करते हैं, हम कॉन्फ़िगरेशन के प्रबंधन के लिए वसंत क्लाउड कॉन्फ़िगरेशन सर्वर का भी उपयोग करते हैं। लेकिन मुझे अभी भी लगता है कि बोर्ड पर इन सभी तकनीकों के साथ भी एक बाकी ग्राहक/सर्वर लिखना महंगा है। क्या हमारे पास सबसे अच्छा समाधान है? क्या उपयोग करने में कुछ भी आसान नहीं है? – Pirulino

1

माइक्रोस्कोपस कसकर युग्मित होने के लिए नहीं हैं, आरएमआई को आपके अंत में दोनों कोड की आवश्यकता होती है, जो मजेदार था जब आपने दूसरी तरफ नियंत्रण नहीं किया था, जैसे क्लाइंट अपग्रेड नहीं करना चाहते हैं और यह बी! @ * था! फायरवॉल के माध्यम से पाने के लिए।

साबुन उन चीजों में से अधिकांश हल करता है जिनका आप उल्लेख करते हैं दुर्भाग्य से जावा का कभी भी अच्छा साबुन ढेर नहीं था। उस ने कहा कि आराम में अन्य फायदे हैं, विशेष रूप से जब किसी वेब पेज और जावास्क्रिप्ट से सेवा तक पहुंचते हैं।

3

मेरी कंपनी में, हम अपने माइक्रोस्कोस स्टैक में "इंटर्न" संचार स्टैक जोड़ने के लिए जेएमएस का उपयोग करते हैं। यह विश्वसनीय, उपयोग करने में आसान, कुशल और बहुत ही प्रभावशाली है।

हम कार्यान्वयन के रूप में Apache ActiveMQ का उपयोग करते हैं, लेकिन RabbitMQ भी व्यापक रूप से उपयोग किया जाता है।

+0

यही वह है जिसे मैं ढूंढ रहा था। हम rabbitMQ का भी उपयोग करते हैं और एक बहुत अच्छा आरपीसी कार्यान्वयन (http://docs.spring.io/spring-amqp/reference/htmlsingle/#_message_correlation_with_a_reply_queue) है लेकिन मैं समझने की कोशिश कर रहा था कि कोई बेहतर समाधान है या नहीं। क्या आपने यह http://www.grpc.io/ देखा है? – Pirulino

+0

हम इसे आरपीसी उपकरण के रूप में उपयोग नहीं करते हैं लेकिन एक संदेश विनिमय के रूप में (जो जेएमएस का मुख्य लक्ष्य है)। आरपीसी उपकरण आमतौर पर जेएमएस द्वारा किए गए कई प्रश्नों का उत्तर नहीं देते हैं: क्या होता है यदि नेटवर्क अस्थायी रूप से नीचे है? यदि आप एक उदाहरण को संबोधित करना चाहते हैं तो क्या होगा? सभी उदाहरण? एक विशिष्ट वर्ग या उदाहरण का प्रकार? जेएमएस के साथ उन सभी उपयोग के मामले को संबोधित करना वास्तव में आसान है, मैं सुर नहीं हूं आप आरपीसी उपकरणों के साथ आसानी से ऐसा कर सकते हैं। आप जेएमएस पर आरपीसी कर सकते हैं, लेकिन मुझे लगता है कि एप्लिकेशन को संदेश-संचालित एप्लिकेशन के रूप में डिज़ाइन करना आसान हो सकता है। –

+0

आप [अक्का] (http://akka.io/) पर भी एक नज़र डाल सकते हैं, जो संदेश-संचालित अनुप्रयोग को डिजाइन करने के लिए भी एक अच्छा टूल है, और व्यापक रूप से इस उपयोग के मामले (आंतरिक सूक्ष्म संचार संचार) के लिए उपयोग किया जाता है। –

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