2012-05-30 13 views
14

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

+1

कृपया http://stackoverflow.com/a/9934393/468244 देखें ... क्योंकि सृजन "मुक्त" नहीं है और सामान्य रूप से पुन: उपयोग करना कोई समस्या नहीं है, आपको शायद पुन: उपयोग करना पसंद करना चाहिए। –

+0

ठीक है। धन्यवाद। लेकिन वर्चुअलपाथप्रोवाइडर के संदर्भ में इन उदाहरणों को सुरक्षित थ्रेड करें? जैसा कि मैंने समझा है कि प्रति एप्लिकेशन वर्चुअलपाथप्रोवाइडर का केवल एक उदाहरण है (यदि मैं एक नया उदाहरण बनाता हूं और इसे application_start पर global.asax में पंजीकृत करता हूं), तो थ्रेड-सुरक्षा के साथ कोई समस्या नहीं होनी चाहिए? – eternity

+0

@sandrino के रूप में कहा गया है कि धागे के साथ कोई समस्या नहीं होनी चाहिए। आपके आवेदन के आधार पर 'CloudIlNotExist' के बाद 'क्लाउडब्लोबकंटनर' को रखना भी आवश्यक हो सकता है। लेकिन यह उपयोग-मामले पर निर्भर करता है। –

उत्तर

14

आप क्लाउडस्टॉरेज अकाउंट और क्लाउडब्लोब क्लाइंट का पुन: उपयोग कर सकते हैं क्योंकि उनके पास कोई राज्य नहीं है (साइमन के लिंक में स्टीव मार्क्स का जवाब देखें)। एसडीके ओपन सोर्स है और आप बस look at the source on GitHub कर सकते हैं।

यदि आप क्लाउडस्टॉरेज अकाउंट क्लास पर एक नज़र डालते हैं तो आप देख सकते हैं कि इसका मुख्य उद्देश्य यह सुनिश्चित करना है कि आप ब्लॉब/कतार और टेबल एंडपॉइंट के साथ स्टोरेज क्रेडेंशियल्स के साथ समाप्त हो जाएं। क्लाउडब्लोब क्लाइंट के कन्स्ट्रक्टर को देखते हुए आप देख सकते हैं कि यह स्टोरेज क्रेडेंशियल्स, एंडपॉइंट उरी और कुछ डिफ़ॉल्ट मानों को स्टोर करता है।

यहां कुछ भी जटिल नहीं है और कोई नेटवर्क I/O नहीं है जिसका अर्थ है कि प्रसंस्करण बहुत सस्ता है। लेकिन जब आप प्रदर्शन के बारे में सोचते हैं तो हर छोटी अनुकूलन सहायता कर सकती है, ताकि आप सुरक्षित रूप से इसे एक स्थिर चर में संग्रहीत कर सकें (इससे आपके यूनिट परीक्षण को प्रभावित हो सकता है) या यदि आप आईओसी कंटेनर का उपयोग करते हैं तो आप पूरे कंटेनर के लिए एक उदाहरण का उपयोग करना चुन सकते हैं।

अब आपको कुछ ध्यान में रखना होगा। आपके क्लाउडस्टॉरेज अकाउंट और आपके क्लाउडब्लोब क्लाइंट दोनों स्टोरेज क्रेडेंशियल्स और एंडपॉइंट उरी को सहेज लेंगे। लेकिन क्या होगा यदि आप इस जानकारी को पोर्टल के माध्यम से बदलते हैं (आपने शायद अपने स्टोरेज खाते की कुंजी बदल दी हो)? यदि आप क्लाउडस्टॉरेज अकाउंट/क्लाउडब्लोब क्लाइंट का एक उदाहरण संग्रहीत करते हैं तो आपको RoleEnvironment.Changing ईवेंट को नई ऑब्जेक्ट खाता जानकारी के साथ इन ऑब्जेक्ट को 'रीफ्रेश' करने के लिए संभालना पड़ सकता है।

+0

यदि यह मामला है तो मुझे त्रुटि क्यों मिल रही है, http://stackoverflow.com/questions/24229288/parallel-blob-upload-throwing-404-bad-request- अंततः – user960567

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