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

मैं निर्भरता इंजेक्शन के लिए ऑटोफैक का उपयोग कर रहा हूँ। क्या आप कृपया मुझे कुछ संसाधनों पर पुनर्निर्देशित कर सकते हैं यह बताते हुए कि मैं एक ही प्रक्रिया में ऑटोफैक के साथ रीबस में एकाधिक उदाहरण कैसे सेट कर सकता हूं?

आपका बहुत बहुत धन्यवाद!

1
Chathuri Gunawardhana 23 अक्टूबर 2017, 12:38

1 उत्तर

सबसे बढ़िया उत्तर

आपको बस इंस्टेंस को कॉन्फ़िगर करना चाहिए, जिसका उपयोग आप अन्य vhost पर संदेश भेजने/प्रकाशित करने के लिए करना चाहते हैं, जैसे कि वन-वे क्लाइंट, जिसे आप इस उद्देश्य के लिए बनाई गई एक समर्पित सेवा के माध्यम से एक्सेस करते हैं।

इसकी तर्ज पर कुछ:

public class OtherVhostBusClient : IDisposable
{
    readonly IBus _bus;

    public OtherVhostBusClient(string amqpConnectionString)
    {
        _bus = Configure.With(new BuiltinHandlerActivator())
            .Transport(t => {
                t.UseRabbitMqAsOneWayClient(amqpConnectionString);
            })
            .Start();
    }

    public Task Publish(object e) => _bus.Publish(e);

    public void Dispose() => _bus.Dispose();
}

यदि आप अपने ऑटोफैक कंटेनर में OtherVhostBusClient को सिंगलटन के रूप में कॉन्फ़िगर करते हैं, तो आप इसे इंजेक्ट कर सकते हैं और अन्य vhost पर सामग्री प्रकाशित करने के लिए इसका उपयोग कर सकते हैं।

इस तरह, आप अनिवार्य रूप से इसे "विदेशी नेटवर्क" के रूप में मान रहे हैं, इसके साथ एकीकरण को लागू कर रहे हैं क्योंकि आप "नेटवर्क" (किसी अन्य परिवहन, HTTP, आदि पर रीबस हो सकते हैं) के बीच किसी अन्य प्रकार के एकीकरण को लागू करेंगे।

Coba biola ini.

1
mookid8000 23 अक्टूबर 2017, 16:34
1
मुझे लगता है कि दृष्टिकोण अधिक समझ में आता है। मेरे पास कुछ अन्य एप्लिकेशन हैं जिन्हें बाद में दूसरे वर्चुअल होस्ट से कनेक्ट करना होगा और मैं उनके लिए उसी सेवा का पुन: उपयोग कर सकता हूं। आपका बहुत बहुत धन्यवाद!
 – 
Chathuri Gunawardhana
24 अक्टूबर 2017, 11:04