एक ऐसी प्रणाली की कल्पना करें जिसमें बड़ी संख्या में सर्वर हों। उनमें से प्रत्येक में कई सेटिंग्स हैं:
- सर्वर के लिए कुछ विशिष्ट
- क्षेत्र के लिए कुछ विशिष्ट
- उन सभी में कुछ सामान्य
- हो सकता है कि आपके पास कुछ कस्टम समूह हों, जैसे कि सर्वरों का यह समूह केवल पढ़ने के लिए है
- आदि।
वर्तमान अभ्यास जो मेरे मन में है वह ओवरराइडिंग क्षमताओं के साथ एक सरल संपत्ति संरचना है।
उदाहरण के उद्देश्य से Google सर्वर को लेने दें। उनमें से प्रत्येक को लोड करने के लिए सेटिंग्स की एक सूची है।
उदाहरण के लिए, लंदन सर्वर हो सकता है:
rootsettings.properties
, europesettings.properties
, londonsettings.properties
, searchengine.properties
, आदि
जहां प्रत्येक फ़ाइल में गुणों का एक सेट होता है और लोडिंग अनुक्रम आपको गुणों को ओवरराइड करने की अनुमति देता है, आगे आप जाते हैं।
उदाहरण के लिए: एक डिफ़ॉल्ट के रूप में rootsettings.properties
हो सकता है accessible=false
, लेकिन searchengine.properties
साथ में अतिरंजित हैaccessible=true
इस संरचना से मुझे जो समस्या हो रही है, उसे नियंत्रण से बाहर करना बहुत आसान है। यह बिल्कुल संरचित नहीं है, जिसका अर्थ है कि आप किसी भी स्तर पर किसी भी संपत्ति को परिभाषित कर सकते हैं और कई आइटम अप्रचलित हो सकते हैं।
इसके अलावा एक मध्य स्तर बदलना असंभव हो जाता है क्योंकि नेटवर्क बढ़ता है, क्योंकि अब आप बहुत बड़ी संख्या में सर्वर को प्रभावित करते हैं।
अंतिम लेकिन कम से कम, प्रत्येक व्यक्तिगत उदाहरण को 1 विशेष संपत्ति की आवश्यकता हो सकती है, जिसका अर्थ है कि आपका पेड़ प्रत्येक सर्वर वैसे भी एक विन्यास के साथ समाप्त होता है, जिससे यह बहुत इष्टतम समाधान नहीं होता है।
यदि आपके पास एक बेहतर विन्यास प्रबंधन वास्तुकला के कोई सुझाव / विचार हैं, तो मैं बहुत सराहना करूंगा।