একটি ভারী ব্যবহৃত API এর জন্য আমার সার্ভার সেটআপ


9

আমি শীঘ্রই এমন একটি অ্যাপ্লিকেশনের জন্য গুচ্ছ সার্ভার কিনব যা আমি চালু করতে চলেছি তবে আমার সেটআপ সম্পর্কে আমার উদ্বেগ রয়েছে। আমি যে কোনও প্রতিক্রিয়া পাই সেটার প্রশংসা করি।

আমার একটি অ্যাপ্লিকেশন রয়েছে যা আমি লিখেছি এমন একটি এপিআই ব্যবহার করব। অন্যান্য ব্যবহারকারী / বিকাশকারীরাও এই এপিআইটি ব্যবহার করবেন। API সার্ভারটি অনুরোধগুলি গ্রহণ করবে এবং সেগুলি কর্মী সার্ভারগুলিতে রিলে করবে। এপিআই কেবল লগিংয়ের উদ্দেশ্যে, প্রমাণীকরণের জন্য এবং হার সীমাবদ্ধ করার জন্য অনুরোধগুলির মাইএসকিএল ডিবি ধারণ করে।

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

এই সেটআপটি কি আপনার কাছে দক্ষ দেখাচ্ছে? এটির পুনর্গঠনের আরও ভাল উপায় কি আছে? আমি কোন বিষয় বিবেচনা করা উচিত? দয়া করে নীচের চিত্রটি দেখুন, আমি আশা করি এটি বুঝতে সহায়তা করে।এখানে চিত্র বর্ণনা লিখুন

উত্তর:


17

উচ্চতর উপলভ্যতা

ক্রিস যেমন উল্লেখ করেছেন, আপনার এপিআই সার্ভারটি আপনার বিন্যাসে ব্যর্থতার একক পয়েন্ট। আপনি যা স্থাপন করছেন সেটি হ'ল একটি বার্তা কুইউং অবকাঠামো, এমন কিছু যা আগে অনেকে প্রয়োগ করেছেন।

একই পথে চালিয়ে যান

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

একটি বার্তা সারি সার্ভার ব্যবহার করুন

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

চিড়িয়াখানা ব্যবহার করুন

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

অন্যান্য উদ্বেগ

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

আপনার দুর্দান্ত উত্তরের জন্য আপনাকে অনেক ধন্যবাদ। আমি জানতাম এআইপি লেয়ারটি একটি বাধা bottle আপনার উত্তরটি পুরোপুরি পড়ার পরে, আমি বুঝতে পেরেছি যে হ্যাঁ, প্রতিটি কর্মীর নিজস্ব এপিআই থাকলে এটি আরও ভাল। যদিও আমি আরও কর্মী যুক্ত করার সাথে কোডটি নকল করা হবে তবে এটি আমার দৃশ্যের জন্য আরও পারফরম্যান্স।
Abs

@ অ্যাবস - আমার প্রথম আপ-ভোটের জন্য ধন্যবাদ! যদি আপনি এপিআই স্তরটি সরিয়ে ফেলার সিদ্ধান্ত নেন তবে আমি এই নিবন্ধে বর্ণিত হিসাবে রাউন্ড-রবিন ডিএনএস এবং সেটআপ এইচএপ্রোক্সি (পছন্দসই একটি জোড়া) না করার পরামর্শ দিচ্ছি । এইভাবে, আপনার সময়সীমা সামলাতে হবে না need
ধর্মান্ধ

@abs আপনাকে এপিআই স্তরটি সরাতে হবে না , তবে ব্যর্থতার একক পয়েন্টটি দূর করতে রিডানডেন্সি (সিএআরপি ফেইলওভার বা অনুরূপ) যুক্ত করা একটি গুরুত্বপূর্ণ বিবেচনা হবে ...
ভোরেটাক

মেসেজিং যতদূর যায় আমি সিদ্ধান্ত নেওয়ার আগে র‌্যাবিট
অ্যান্টনিয়াস

2

সবচেয়ে বড় সমস্যা আমি দেখতে পাচ্ছি হ'ল ব্যর্থ পরিকল্পনাটির অভাব।

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

লোড ভারসাম্য এবং ব্যর্থতা কীভাবে কাজ করে তা সম্পর্কে ধারণা পেতে এবং এইগুলি কীভাবে আপনার ডিজাইনে উপকৃত হতে পারে তার একটি ধারণা পেতে আপনাকে লিনাক্স ভার্চুয়াল সার্ভার প্রকল্পটি ( http://www.linuxvirtualserver.org/ ) দেখার পরামর্শ দেওয়ার পরামর্শ দিচ্ছি ।

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


এই দৃশ্যে আপনি কীভাবে একটি ব্যর্থ ওভার মেকানিজম বাস্তবায়ন করবেন? একটি সাধারণ ওভারভিউ দুর্দান্ত হবে।
Abs

আপনার চিত্রটি থেকে আপনার লিনাক্স ভার্চুয়াল সার্ভার (এলভিএস) গবেষণা করা উচিত। Linuxvirtualserver.org এ যান এবং আপনার যা কিছু শিখতে শুরু করুন।
ক্রিস টিং

আকর্ষণীয়, আমি এটি এবং সাধারণভাবে ব্যর্থগুলি সন্ধান করব। আমার সেটআপে অন্য কোনও মন্তব্য? অন্য কোন বিপদ যে আমি মুখোমুখি হতে পারি?
Abs

@ অ্যাবস: আপনার অনেক সমস্যার মুখোমুখি হতে পারে are আপনার প্রশ্নের এতে অনেকগুলি বিষয়গত অংশ রয়েছে এবং আমি আপনাকে ব্যক্তিগতভাবে যা করব তার সাথে আপনাকে বাক্সবন্দী করতে চাই না। আমি আপনার সেটআপ সমর্থন করতে হবে না; তুমি কর. আমার আসল উত্তর হ'ল ব্যর্থতা এবং উচ্চ প্রাপ্যতা সম্পর্কে শিখতে।
ক্রিস টিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.