64k এর বেশি ওয়েবসকেটের জন্য স্কেল HAProxy


8

আমরা এমন একটি আর্কিটেকচার ডিজাইনের চেষ্টা করছি যা k৪ কেরও বেশি ওয়েবসকেট পরিচালনা করতে সক্ষম হবে।

আমরা প্রথমে অ্যামাজন ইএলবি দিয়ে চেষ্টা করেছি, তবে এর নকশাটি অপ্রত্যাশিত ট্র্যাফিক বা ওয়েবসকেটের মঞ্জুরি দেয় না। (টিসিপি মোড অপ্রত্যাশিতভাবে ওয়েবসকেটগুলির মেয়াদ উত্তীর্ণ হয়েছে)

HAProxy সহ, এই সীমাগুলি প্রযোজ্য নয়, তবে আমরা HA এবং ব্যাক-এন্ড সার্ভারগুলির মধ্যে রক্ষণাবেক্ষণ করা ~ 64k ওয়েবসকেটগুলির মধ্যে সীমাবদ্ধ থাকব।

একাধিক সমাধান যা মাথায় আসে:

  • একাধিক HAProxy দৃষ্টান্ত, ডিএনএসের সাথে লোড ভারসাম্য (রুট 53 এর একটি ওজনযুক্ত বিকল্প রয়েছে)
  • ক্যাপালাইভড, একাধিক অভ্যন্তরীণ আইপি ঠিকানা (দুটি এটি কার্যকর কিনা তা নিশ্চিত নয়) সহ দুটি HAProxy দৃষ্টান্ত

এই কাজ করতে একটি ভাল উপায় আছে কি ?


1
কেন 64k সীমা? এটি একটি উত্স বন্দর জিনিস? যদি এমনটি হয় তবে আপনি কেবল বিভিন্ন বন্দরগুলিতে আবদ্ধ যে ব্যাকএন্ডে আরও 'সার্ভার' যুক্ত করতে পারেন ...
কাইল ব্র্যান্ড্ট

@ বাসটিয়েন 974, সবচেয়ে সহজ উপায়, ব্যাকেন্ডের জন্য বিভিন্ন সোর্স আইপি ব্যবহার করা, ১৩০ কে সংযোগে স্কেল করতে, আমি দুটি আইপিএস এবং টুই_রিজ সিসটেল বিকল্পটি ব্যবহার করেছি
c4f4t0r

উত্তর:


7

যদি আপনার k৪ কেটের সীমাটি উত্স বন্দরগুলির কারণে হয় তবে আপনি নিম্নলিখিতগুলির মতো কিছু করতে পারেন (কিছুটা হ্যাকি তবে এটি বর্তমানে আমরা ওয়েবকোকেটগুলির জন্য এসইতে করছিলাম) আমাদের সাধারণত সাধারণত হ্যাপ্রোক্সির সাথে মিলিয়ন মিলিয়ন) রয়েছে:

server ny-web01-1 10.0.0.1:8081 check
server ny-web01-2 10.0.0.1:8082 check
server ny-web01-3 10.0.0.1:8083 check

এছাড়াও একাধিক উদাহরণগুলি কিপলাইভডের সাথে করণীয়। একাধিক আইপি-তে রাউন্ড রবিন ডিএনএসের মতো কিছু করুন। কেবল নিশ্চিত করুন যে আইপিগুলি সর্বদা সক্রিয় লোড ব্যালান্সারদের দ্বারা গ্রহণ করা হয় যেহেতু ডিএনএস নিজেই আপনাকে বোঝা ভারসাম্য দেয় না (এখানে আরও বিকল্প রয়েছে, এটি কেবল সহজ)।


1
যদি আমি সঠিকভাবে বুঝতে পারি, যেহেতু একটি টিসিপি সংযোগটি srcIP দ্বারা নির্ধারিত হয়েছে: srcPORT / ড্যাশআইপি: ডেসপোর্ট: যদি আমি একাধিক পোর্টের ব্যাক-এন্ড সার্ভারগুলিতে শুনতে সক্ষম হই তবে তার অর্থ হ্যাপ্রোক্সি এবং ব্যাক-এন্ড সার্ভারের মধ্যে আমি সক্ষম হব একই १२7.০.০.১.৩৩৩45৪৪ -> 10.0.0.1:8081, 127.0.0.1صول2345 -> 10.0.0.1:8082, ইত্যাদি থেকে একাধিক সংযোগ থাকতে? এটি কি সত্যিই কাজ করে?
Bastien974

@ বাসটিয়েন 974: আপনি সঠিকভাবে বুঝতে পেরেছেন - এটি কাজ করে।
কাইল ব্র্যান্ড্ট

@ বাসটিয়েন 974: আপনি source 0.0.0.0 usesrc clientটিপ্রোক্সির উত্স স্বচ্ছতার জন্য হ্যাপ্রোক্সির ব্যাকএন্ড কনফিগারেশন ব্যবহার করতে পারেন । এই পদ্ধতিতে srcIP: srcPORT আসল ক্লায়েন্টের আইপি / পোর্ট হতে চলেছে (হ্যাপ্রোক্সি মেশিনের অভ্যন্তরীণ আইপি নয়) - খুব লগিংয়ের জন্য ঝরঝরে।
wqw

0

আপনি একাধিক এইচআরসি সিস্টেম পরিচালনা করতে পারেন যা যেকোনকাস্ট এবং বিজিপি বা কিছু অন্যান্য সীমান্তের রাউটিং প্রোটোকল ব্যবহার করে একই আইপি ভাগ করে। এই ভাবে সমস্ত HAproxy সিস্টেম সক্রিয় রয়েছে; যদি এগুলির মধ্যে কোনওটি নীচে যায় আপনি সেই সিস্টেমে বিজিপি রুটের বিজ্ঞাপন দেওয়া বন্ধ করে দেন এবং এটি 30 সেকেন্ডের মধ্যে ট্র্যাফিক গ্রহণ বন্ধ করে দেবে; যা একই ব্যাপ্তির বিজ্ঞাপন হিসাবে উপলব্ধ অন্যান্য উপলব্ধ সিস্টেমে পুনরায় বিতরণ করা হবে।

উদাহরণস্বরূপ এই জাতীয় লেআউটটি কীভাবে সেট আপ করতে হয় তা এই URL টি দেখুন


আমি নিশ্চিত নই যে এটি কোনও এডাব্লুএস ভিপিসি অবকাঠামোর অভ্যন্তরে কাজ করবে কারণ প্রতিটি ঘটনার সাথে সম্পর্কিত ইলাস্টিক আইপি ব্যবহার করা আমার প্রয়োজন। আপনার সমাধানটি ডিএনএস একের খুব কাছাকাছি হবে, যেহেতু অ্যামাজন রুট 53 একটি স্বাস্থ্য পরীক্ষা যুক্ত করার বিকল্প সরবরাহ করে। আমার উদ্বেগটি হ'ল কম টিটিএল থাকা সত্ত্বেও, একটি "মৃত" এইচএ দৃষ্টান্তে ট্র্যাফিক প্রেরণ বন্ধ করার জন্য আমরা অন্যান্য দেশগুলিতে (আমাদের বিশ্বব্যাপী ক্লায়েন্ট রয়েছে) প্রচারের অপেক্ষা করতে পারি না।
Bastien974
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.