2013-12-11 7 views
11

पर एक संदेश कब स्थानांतरित किया गया है मैं RabbitMQ संस्करण 3.0.2 & का उपयोग कर रहा हूं, मुझे त्रुटि कतार में 1000 संदेश दिखाई देता है। मैं जानना चाहता हूंरैबिटएमक्यू के साथ Masstransit: त्रुटि संदेश कतार

  1. किस बिंदु पर संदेशों को त्रुटि कतार में स्थानांतरित किया जाता है?
  2. क्या यह जानने का कोई तरीका है कि एक त्रुटि संदेश में एक निश्चित संदेश क्यों स्थानांतरित किया जा रहा है?
  3. क्या त्रुटि कतार से सामान्य कतार में संदेश स्थानांतरित करने का कोई तरीका है?

धन्यवाद

उत्तर

7
  1. क) वे deserialize करने के लिए असफल या ख) उपभोक्ता एक अपवाद प्रसंस्करण फेंकता है कि संदेश पांच बार
  2. नहीं वास्तव में ... आप कतार में संदेश में झांक सकते हैं , पेलोड हेडर में एक नोट हो सकता है लेकिन मुझे नहीं लगता कि हमने ऐसा किया है। यदि आप लॉगिंग चालू करते हैं (एनएलओजी, लॉग 4नेट, आदि) तो आप अपने लॉग में अपवाद देख सकते हैं। आपको उस बिंदु पर संदेश आईडी को सहसंबंधित करना होगा ताकि वास्तव में क्यों पता चल सके।
  3. MassTransit के माध्यम से कोई भी रास्ता नहीं बनाया गया है। अधिकतर क्योंकि इसे संभालने के लिए एक महान, सामान्य तरीका प्रतीत नहीं होता है। हर कोई इसके चारों ओर कुछ प्रक्रिया चाहता है। ड्रू ने बसड्राइवर ऐप बनाया था (main MT source repo में) जिसका उपयोग संदेशों को एक्सचेंज में वापस ले जाने के लिए किया जा सकता था। यह डिफ़ॉल्ट व्यवहार वहां है ताकि आप कम से कम जान सकें कि यदि आप इसे संभालने के लिए बुनियादी ढांचे में नहीं डालते हैं तो चीजें विफल हो रही हैं।
+1

हाय ट्रैविस, उत्तर के लिए धन्यवाद। मेरे मामले में, 100 संदेशों में से 10 को त्रुटि कतार में स्थानांतरित कर दिया गया है। अब मैं समझने में असफल रहा कि डी-सीरियलाइजेशन के कारण केवल कुछ संदेश विफल क्यों होंगे और उपभोक्ता अपवाद क्यों फेंक देगा। मुझे लगता है कि बेहतर समझ हासिल करने के लिए हमें लॉगिंग सक्षम करने की आवश्यकता है। – SharpCoder

+1

यह संभव है कि deserialization में एक त्रुटि है - लेकिन आमतौर पर केवल तभी होता है जब आप एक्सचेंज में डेटा डालने के लिए एमटी का उपयोग नहीं कर रहे हैं। सभी संभावित हूड में आपका उपभोक्ता अपवाद फेंक रहा है। शुभकामनाएं, लॉगिंग संभवतः यह समझने का पहला कदम है कि क्या हो रहा है। दस्तावेज़ों को मदद करनी चाहिए: http://masstransit.readthedocs.org/en/master/overview/logging.html – Travis

+0

इसे समझाने के लिए धन्यवाद। लेकिन आपके द्वारा साझा किया गया लिंक MassTransit के लिए है और RabbitMQ को लॉग इन करने के लिए नहीं है। हो सकता है कि मैं गलत हूं लेकिन मुझे लगता है कि हमें RabbitMQ त्रुटियों को लॉग करना चाहिए – SharpCoder

1

ट्रैविस 'जवाब देने के लिए जोड़ने के लिए, मेरे विकास के दौरान मैं त्रुटि कतार पर जा रहा संदेशों के लिए कुछ अन्य कारणों से मिला:

  1. प्रकाशित संदेश प्रकार कोई उपभोक्ता
  2. एक सागा और एक उपभोक्ता है एक ही ठोस संदेश प्रकार की उम्मीद कर रहे हैं। भले ही आप "स्वीकार करें" और "चयन" का उपयोग करके कोशिश करें और अंतर करें, एक सागा और उपभोक्ता दोनों को एक ही संदेश प्रकार प्राप्त करने के लिए प्रोग्राम नहीं किया जाना चाहिए।
+0

के माध्यम से अपना RabbitMQ लॉग पा सकते हैं। उपभोक्ता मेरे लिए त्रुटि कतार में संदेश को धक्का दे रहा था। – Chrysalis

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