हमारे पास लंबे समय तक चलने वाले अनुप्रयोगों (जैसे वेब साइट्स और सेवाओं) के लिए डेटाबेस में कॉन्फ़िगरेशन को संग्रहीत करने के साथ बहुत अच्छा अनुभव था। लाभ:
- आप config दूर से और सुरक्षित रूप से (उपयोगकर्ता/कूटशब्द) संपादित कर सकते हैं
- यह आसान आवेदन अप परिवर्तन (
select max(lmod) from config
) स्वचालित रूप से या एक संकेत द्वारा (पिंग एक वेब पेज लेने या एक बनाने के लिए है खाली फ़ाइल कहीं)
- एप्लिकेशन को प्रति माह कॉन्फ़िगरेशन (देव, परीक्षण, प्रोड) की एक ही वस्तु की आवश्यकता होती है: डीबी का उपयोग करने के लिए। यदि आपके पास कोई एप्लिकेशन सर्वर है, तो आपके एप्लिकेशन सभी वातावरण के लिए कॉन्फ़िगरेशन मुक्त हैं।
मुख्य समस्या संपादन है यदि आपके पास डिफ़ॉल्ट, पदानुक्रमित कॉन्फ़िगरेशन संरचना डिफ़ॉल्ट, सूचियों और विरासत के साथ है।हमारे समाधान:
- config तालिका इन पंक्तियां हैं: आवेदन varchar (32), कुंजी varchar (512), मूल्य varchar पर्यावरण प्रति (4096)
- एक डीबी (स्थानीय डेवलपर मशीन, विकास परीक्षण, एकीकरण परीक्षण (option.suboption .... नाम), उत्पादन)
- कुंजी पदानुक्रमित है
- चूक का उपयोग "विकल्प। .name" (उदाहरण के लिए, "JDBC। .driver" क्योंकि हम में से केवल एक प्रकार का उपयोग करें डेटाबेस)
- सूचियाँ, तारों के रूप में जमा हो जाती है न्यू लाइन से अलग कर दिया।
- मानचित्र स्ट्रिंग्स के रूप में स्टोर हैं, "name = value \ n"
- एक कार्यान्वयन है जो फ़ाइल (इकाई परीक्षणों के लिए) से कॉन्फ़िगरेशन पढ़ सकता है। किसी तत्व के लिए कुंजी के प्रत्येक पदानुक्रम को मानचित्र करें (......)
कॉन्फ़िगरेशन ऑब्जेक्ट्स इन विवरणों को छुपाएं, इसलिए एप्लिकेशन केवल ऑब्जेक्ट्स के साथ काम करता है।
एक विशेष वर्ग को फिर से पढ़ने एक परिवर्तन के मामले में config लिए जिम्मेदार है। आमतौर पर, हम दिन के दौरान कॉन्फ़िगरेशन को कुछ समय अपडेट करते हैं और एक समय की नौकरी घंटे के बाद इसे फिर से लोड कर देगी। इस तरह, हमें कॉन्फ़िगरेशन विधियों को सिंक्रनाइज़ करने की आवश्यकता नहीं है।
बैकअप और बदलाव का इतिहास एक समस्या है, हालांकि थे। हमने तय किया कि वीसीएस में एक्सएमएल फाइलों का उपयोग करके जो डीबी को "अपलोड" किया जाता है। इस तरह, हम इसे अपलोड करने से पहले उत्पादन कॉन्फ़िगरेशन को सत्यापित कर सकते हैं (इसे डेवलपर मशीन पर यूनिट परीक्षणों के एक विशेष सेट के साथ उपयोग करके)। जब यह रात के दौरान सक्रिय हो गया, तो यह आमतौर पर तुरंत काम करता था और ऐप के लिए ज़िम्मेदार ऑपरेटर को थोड़ा सा परीक्षण करना होगा।
स्रोत
2009-02-19 10:27:38
मुझे लगता है कि इस सवाल का अभी भी अत्यधिक देखा जाता है, तो बस अनुप्रयोगों –