আমি বর্তমানে লোড ব্যালেন্সিংয়ের জন্য ডিএনএস রাউন্ড রবিন ব্যবহার করি যা দুর্দান্ত কাজ করে। রেকর্ডগুলি দেখতে দেখতে (আমার কাছে 120 সেকেন্ডের একটি টিটিএল আছে)
;; ANSWER SECTION:
orion.2x.to. 116 IN A 80.237.201.41
orion.2x.to. 116 IN A 87.230.54.12
orion.2x.to. 116 IN A 87.230.100.10
orion.2x.to. 116 IN A 87.230.51.65
আমি শিখেছি যে প্রতিটি আইএসপি / ডিভাইস এই জাতীয় প্রতিক্রিয়া একইভাবে আচরণ করে না। উদাহরণস্বরূপ কিছু ডিএনএস সার্ভার ঠিকানাগুলি এলোমেলোভাবে ঘোরান বা সর্বদা তাদের মধ্য দিয়ে চক্কর দিন। কিছু কেবল প্রথম প্রবেশের প্রচার করে, অন্যরা আইপি ঠিকানাটি দেখে কোনটি ভাল (অঞ্চলগতভাবে নিকটে) তা নির্ধারণ করার চেষ্টা করে।
তবে যদি ব্যবহারকারীর বেসটি যথেষ্ট বড় হয় (একাধিক আইএসপিগুলিতে ছড়িয়ে পড়ে etc.) তবে এটি ভারসাম্যহীন। সর্বোচ্চ থেকে সর্বনিম্ন লোড হওয়া সার্ভারের তাত্পর্যগুলি খুব কমই 15% ছাড়িয়ে যায়।
তবে এখন আমার সমস্যা আছে যে আমি সিস্টেমে আরও সার্ভার প্রবর্তন করছি এবং সকলের সক্ষমতা একই নয়।
আমার কাছে বর্তমানে কেবল 1 জিবিপিএস সার্ভার রয়েছে তবে আমি 100 এমবিপিএস এবং 10 জিবিপিএস সার্ভারের সাথেও কাজ করতে চাই।
তাই আমি যা চাই তা হ'ল আমি 100 ওজনের 10 গিগাবাইটের সাথে একটি সার্ভার, 10 ওজনের একটি 1 জিবিপিএস সার্ভার এবং 1 এর ওজন সহ 100 এমবিপিএস সার্ভারের সাথে পরিচয় করিয়ে দিতে চাই।
আমি তাদের কাছে আরও ট্র্যাফিক আনার জন্য পূর্বে দুবার সার্ভার যুক্ত করেছি (যা দুর্দান্ত কাজ করেছে - ব্যান্ডউইথ প্রায় দ্বিগুণ)। তবে ডিএনএসে 100 বার 10 জিবিপিএস সার্ভার যুক্ত করা কিছুটা হাস্যকর।
তাই টিটিএল ব্যবহারের কথা ভেবেছি।
যদি আমি সার্ভার এ 240 সেকেন্ডের টিটিএল এবং সার্ভার বিটি দিই মাত্র 120 সেকেন্ড (যা প্রায় কম গোলের রবিনের জন্য ব্যবহার করা উচিত, নিম্ন টিটিএল নির্দিষ্ট করা থাকলে প্রচুর ডিএনএস সার্ভার সেট করা হয় 120 (তাই আমি শুনেছি))। আমি মনে করি একটি আদর্শ দৃশ্যে এরকম কিছু হওয়া উচিত:
First 120 seconds
50% of requests get server A -> keep it for 240 seconds.
50% of requests get server B -> keep it for 120 seconds
Second 120 seconds
50% of requests still have server A cached -> keep it for another 120 seconds.
25% of requests get server A -> keep it for 240 seconds
25% of requests get server B -> keep it for 120 seconds
Third 120 seconds
25% will get server A (from the 50% of Server A that now expired) -> cache 240 sec
25% will get server B (from the 50% of Server A that now expired) -> cache 120 sec
25% will have server A cached for another 120 seconds
12.5% will get server B (from the 25% of server B that now expired) -> cache 120sec
12.5% will get server A (from the 25% of server B that now expired) -> cache 240 sec
Fourth 120 seconds
25% will have server A cached -> cache for another 120 secs
12.5% will get server A (from the 25% of b that now expired) -> cache 240 secs
12.5% will get server B (from the 25% of b that now expired) -> cache 120 secs
12.5% will get server A (from the 25% of a that now expired) -> cache 240 secs
12.5% will get server B (from the 25% of a that now expired) -> cache 120 secs
6.25% will get server A (from the 12.5% of b that now expired) -> cache 240 secs
6.25% will get server B (from the 12.5% of b that now expired) -> cache 120 secs
12.5% will have server A cached -> cache another 120 secs
... I think I lost something at this point, but I think you get the idea...
আপনি দেখতে পাচ্ছেন যে এটি পূর্বাভাস দেওয়া বেশ জটিল হয়ে পড়েছে এবং এটি অবশ্যই বাস্তবে এর মতো কাজ করবে না। তবে এটি অবশ্যই বিতরণে প্রভাব ফেলবে!
আমি জানি যে ভারী রাউন্ড রবিন বিদ্যমান এবং এটি কেবলমাত্র রুট সার্ভার দ্বারা নিয়ন্ত্রিত। সাড়া দেওয়ার সময় এটি কেবল ডিএনএস রেকর্ডগুলির মধ্যে চক্র করে এবং ভারের সাথে সামঞ্জস্যপূর্ণ একটি সেট সম্ভাবনার সাথে ডিএনএস রেকর্ডগুলি দেয়। আমার ডিএনএস সার্ভার এটিকে সমর্থন করে না, এবং আমার প্রয়োজনীয়তাগুলিও এটি যথাযথ নয়। যদি এটি পুরোপুরি ওজন না করে তবে এটি ঠিক আছে, তবে এটি সঠিক দিকে যেতে হবে।
আমি মনে করি টিটিএল ক্ষেত্রটি ব্যবহার করা আরও মার্জিত এবং সহজ সমাধান হতে পারে - এবং এটির জন্য একটি ডিএনএস সার্ভারের প্রয়োজন হয় না যা এই গতিশীলভাবে নিয়ন্ত্রণ করে, যা সংস্থানগুলি সংরক্ষণ করে - যা আমার মতে হার্ডওয়্যার লোড ব্যালান্সার্স বনাম ডিএনএস লোড ব্যালেন্সিংয়ের পুরো পয়েন্ট।
আমার এখন প্রশ্ন: ডিএনএস রেকর্ডের টিটিএল বৈশিষ্ট্যটি ব্যবহার করে থাম্ব থেকে ওজন গোলাকার রবিন বিতরণের কোনও সেরা অনুশীলন / পদ্ধতি / নিয়ম রয়েছে?
সম্পাদনা:
সিস্টেমটি একটি ফরোয়ার্ড প্রক্সি সার্ভার সিস্টেম। ব্যান্ডউইথের পরিমাণ (অনুরোধ নয়) ইথারনেটের একটি একক সার্ভার যা পরিচালনা করতে পারে তার চেয়ে বেশি। সুতরাং আমার একটি ভারসাম্যপূর্ণ সমাধান দরকার যা বেশ কয়েকটি সার্ভারে ব্যান্ডউইদথ বিতরণ করে। ডিএনএস ব্যবহারের বিকল্প আছে কি? অবশ্যই আমি ফাইবার চ্যানেল ইত্যাদির সাহায্যে লোড ব্যালেন্সার ব্যবহার করতে পারি, তবে ব্যয়গুলি হাস্যকর এবং এটি কেবল বাধা-প্রস্থের প্রস্থকে বাড়িয়ে দেয় এবং এটি দূর করে না। আমি কেবল ভাবতে পারি যে কোনও কাস্টকাস্ট (এটি কোনও কাস্টকাস্ট বা মাল্টিকাস্ট?) আইপি অ্যাড্রেসগুলি তবে আমার কাছে এই জাতীয় সিস্টেম সেট আপ করার উপায় নেই।