2010-11-30 20 views
12

मुझे एक वितरित सिस्टम मिला है जहां 1 SQL सर्वर, 1-एन प्रोसेसिंग सर्वर और 1-एन डेटा आपूर्तिकर्ताओं (नेटवर्क पर हार्डवेयर डिवाइस) होंगे। प्रदान किए जा रहे डेटा को रिलेशनशिप डीबी संरचना में जाने से पहले प्रसंस्करण की आवश्यकता होगी - प्रसंस्करण सर्वर (विंडोज़ सेवाओं के रूप में - नेट कोड के रूप में, डेटा को पार्स करने, इसे संसाधित करने और इसे संबंधपरक संरचना में डालने के लिए।)
संभालने के लिए संभावित लोड और डेटा आपूर्तिकर्ताओं को धीमा नहीं करते हैं, मैं एक कतार लागू करना चाहता हूं, लेकिन मुझे यकीन नहीं है कि मैं मिश्रण में एमएसएमक्यू सर्वर की जटिलता जोड़ना चाहता हूं। क्या एमएसएमक्यू के लिए कोई अच्छा विकल्प है, जैसे क्यूई के रूप में डीबी (एक फ्लैट टेबल) का उपयोग करना? क्या .NET डीबी कतारों के लिए आउट ऑफ़ द बॉक्स समर्थन प्रदान करता है, या विश्वसनीय कतार के लिए कोई और विकल्प है?
धन्यवादएमएसएमक्यू के लिए या एमएसएमक्यू के लिए नहीं? (या कतार के रूप में एसक्यूएल तालिका)

संपादित करें: (29 नवंबर, 11:30 बजे)
SQL सेवा ब्रोकर (एसएसबी) की तरह लगता है चाल कर सकता है।
http://www.netframeworkdev.com/windows-communication-foundation/service-broker-vs-msmq-as-reliable-queueing-mechanism-63981.shtml

संपादित करें: (30 नवंबर, 7:45 बजे)
मिले इस विषय पर एक और बहुत उपयोगी लिंक:
http://social.msdn.microsoft.com/Forums/en-US/sqlservicebroker/thread/52687510-0852-44f3-bfcd-83610d1c1b9a
मैं भी डेटा की अधिकतम/मिनट आकार में देख रहा हूँ कि आपूर्ति की जाएगी। उनके सिर के शीर्ष में, क्या किसी को एमएसएमक्यू और/या एसएसबी द्वारा समायोजित अधिकतम आकार पता है?
MSMQ: 4MB संदेश आकार
एसएसबी: 2GB संदेश आकार

संपादित करें: (30 नवंबर, 8; 15am)
MSMQ & एसएसबी यहाँ के बीच ग्रेट तुलना:
Good Strategy for Message Queuing?

उत्तर

4

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

+2

विशेष रूप से लेनदेन एमएसएमक्यू का उपयोग करें। – Steven

2

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

+1

आप किसी एमएसएमक्यू कतार के माध्यम से केवल कुछ संदेशों को संसाधित कर सकते हैं: 'MessageQueue.CreateCursor', और फिर कर्सर लेने वाले' पीक 'और' प्राप्त करें 'ओवरलोड का उपयोग करें। – Richard

+1

यदि आप प्रक्रिया के लिए कुछ प्रकार के संदेश चुनना और चुनना चाहते हैं तो आप प्रत्येक संदेश प्रकार के लिए अलग-अलग कतारों को बंद करना बेहतर होगा। –

+0

@ रिचर्ड ने इसे "पुनः प्राथमिकता" दिया है जिसे आप वास्तव में नहीं कर सकते हैं। – StingyJack

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