मूलतः मैं निम्न कार्य करना चाहता हूं:
स्ट्रिंग समाधान डीएनएस (स्ट्रिंग होस्ट) {string RootId = "SOME_ID"; स्ट्रिंग id = rootId; स्ट्रिंग [] ज़ोन = होस्ट.split ('।'); के लिए (इंट I = जोनों।) - 1; i & gt = 0; i -) {आईडी = मिलजोनआईडी (आईडी, क्षेत्र [i]); } स्ट्रिंग [] ips = getZoneIps (आईडी); यदि (ips.count () == 1) {वापसी आईपीएस [0]; } और {वापसी getLeastLoadedIp (ips); }} स्ट्रिंग getZoneId (स्ट्रिंग रूट आईआईडी, स्ट्रिंग ज़ोननाम) {वापसी Sql.prepare ("SELECT id FROM zones WHERE parent_id =% s AND name =% s", rootId, zoneName); } स्ट्रिंग getZoneIps (स्ट्रिंग आईडी) {वापसी Sql.prepare ("चयन आईपी से जोन जहां parent_id =% s", आईडी); } String getLeastLoadedIp (स्ट्रिंग [] ips) {if (inMem) {int min = INT_MAX; स्ट्रिंग आईपी = नल; के लिए (int i = 0; i & amp; lt ips- & gt; गिनती (); i ++) {int count = hashTable.get (queue_length, ips [i]); यदि (गणना और amp; एलटी मिनट) {ip = ips [i]; न्यूनतम = गणना; }} वापसी आईपी; } Else {return Sql.prepare ("SELECT ip fROM zones WHERE ip IN (% a) ORDER BY queue_length ASC LIMIT 1", ips); }} कौन सी DNS सर्वर मुझे यह करने की अनुमति देगा? (सी या सी ++ ठीक है)
मुझे लगता है कि (यकीन नहीं) पावरडेश कस्टम बैक-एंड का समर्थन करता है एक अन्य दृष्टिकोण (बस सपने देखना) सामान्य डेटाबेस बैक-एंड का इस्तेमाल कर सकता है, और कुछ एसक्यूएल संग्रहित प्रक्रिया का उपयोग कर सकता है जो कि कम से कम भरी आईपी वापस लौटाएगा। इसके अलावा, कई DNS सर्वर खुले स्रोत हैं, इस प्रकार आप अपनी आवश्यकताओं के लिए कोड को संशोधित कर सकते हैं। इसके अलावा, BIND10 कुछ मॉड्यूलर होने जा रहा है और एक्सटेंशन का समर्थन करने जा रहा है (याद नहीं कि उन्हें कैसे बिल्कुल कॉल किया गया), इस कार्यक्षमता को इस तरह के "एक्सटेंशन" के रूप में जोड़ा जा सकता है लेकिन मुझे लगता है कि यह BIND10 सुविधा अभी तैयार नहीं है।
टीटीएल के बारे में मत भूलना संभवत: आपका दृष्टिकोण कम टीटीएल के साथ ही समझ में आता है।
मुझे लगता है कि कुछ वाणिज्यिक समाधानों में यह सुविधा है, प्रोबबल एफ 5 करता है, लेकिन मुझे लगता है कि आप जो भी कर रहे हैं वह नहीं है। < / html>
Comments
Post a Comment