আমি যুক্তি দেব যে এটি একটি অর্থনীতি প্রশ্ন বেশি। যাইহোক, এটি একটি রায় কল যা ইঞ্জিনিয়ারদের পক্ষে সক্ষম হওয়া উচিত। সুতরাং, আমি উত্তর দিচ্ছি।
আমি আমার উত্তরটি চার ভাগে ভাগ করছি:
- ঝুকি ব্যবস্থাপনা
- কৌশলের
- খরচ
- স্বজ্ঞা
ঝুকি ব্যবস্থাপনা
সুতরাং, কখনও কখনও আপনার ক্লায়েন্ট সার্ভার থেকে প্রতিক্রিয়া পেতে ব্যর্থ হয়। আমি ধরে নেব এটি কোনও প্রোগ্রাম্যাটিক ত্রুটির কারণে নয় (অন্যথায় সমাধানটি এটি ঠিক করা, সুতরাং এটি করুন)। পরিবর্তে, এটি অবশ্যই আপনার নিয়ন্ত্রণের বাইরে দুর্ভাগ্যজনক পরিস্থিতির কারণে ...
তবে আপনার জ্ঞানের বাইরে নয়। তুমি অবশ্যই জানো:
- কিভাবে প্রায়ই এটা ঘটতে পারে না.
- এর কী প্রভাব পড়ে।
উদাহরণস্বরূপ, যদি ব্যর্থতা এবং পুনরায় চেষ্টা করা সময়ের প্রায় 2% সময় ঘটে তবে সম্ভবত এটি সম্বোধন করার উপযুক্ত নয়। যদি এটি প্রায় ৮০% সময় হয় তবে ভাল ... নির্ভর করে ...
ক্লায়েন্ট কত সময় অপেক্ষা করতে হবে? এবং এটি কীভাবে ব্যয়গুলিতে অনুবাদ করে ... আপনি দেখুন, আপনার নিয়মিত প্রয়োগে কিছুটা বিলম্ব হয়, এটি সম্ভবত কোনও বড় বিষয় নয়। যদি তা তাৎপর্যপূর্ণ হয় এবং আপনার যদি সত্যিকারের সময়ের অ্যাপ্লিকেশন বা একটি অনলাইন ভিডিও গেম থাকে তবে এটি ব্যবহারকারীদের সরিয়ে দেবে এবং আপনি সম্ভবত আরও বা আরও ভাল সার্ভারে বিনিয়োগ করা থেকে ভাল। অন্যথায়, আপনি সম্ভবত "লোডিং" বা "সার্ভারের অপেক্ষায়" বার্তাটি রাখতে পারেন। যদি না, দেরিটি সত্যই বড় হয় (দশক সেকেন্ডের ক্রম অনুসারে), তবে এটি নিয়মিত প্রয়োগের ক্ষেত্রেও অনেক বেশি হতে পারে।
কৌশলের
আমি উপরে যেমন বলেছি, এই সমস্যায় যাওয়ার আরও একাধিক উপায় রয়েছে। আমি ধরে নেব আপনার ইতিমধ্যে চেষ্টা-ব্যর্থ-পুনরায় চেষ্টা লুপ বাস্তবায়ন হয়েছে। সুতরাং, আমাদের দেখতে দিন ...
- একটি লোডিং বার্তা রাখুন। এটি সস্তা, ব্যবহারকারী ধরে রাখতে সহায়তা করে।
- সমান্তরালে প্রশ্ন। দ্রুত হতে পারে, এখনও ব্যর্থ হতে পারে। রিডানড্যান্ট সার্ভারের প্রয়োজন হবে (ব্যয়বহুল হতে পারে), সার্ভারের সময় এবং নেটওয়ার্ক ট্র্যাফিক নষ্ট করবে।
- দ্রুত সার্ভারটি স্থির করার জন্য সমান্তরালভাবে জিজ্ঞাসা করুন এবং সেখান থেকে এটি ব্যবহার করুন। দ্রুত হতে পারে, এখনও ব্যর্থ হতে পারে। অপ্রয়োজনীয় সার্ভারের প্রয়োজন হবে (ব্যয়বহুল হতে পারে), সার্ভারের সময় এবং নেটওয়ার্ক ট্র্যাফিকের অপচয় করবে না।
এখন, লক্ষ্য করুন আমি বলছি এগুলি এখনও ব্যর্থ হতে পারে। যদি আমরা ধরে নিই যে কোনও সার্ভারের একটি ক্যোয়ারিতে ব্যর্থতার 80% সম্ভাবনা রয়েছে, তবে দুটি সার্ভারের সমান্তরাল ক্যোয়ারিতে ব্যর্থতার 64% সম্ভাবনা রয়েছে। সুতরাং, আপনাকে এখনও আবার চেষ্টা করতে হতে পারে।
দ্রুত সার্ভারটি বাছাই করা এবং এটি ব্যবহার চালিয়ে যাওয়ার একটি বোনাস সুবিধা হ'ল নেটওয়ার্ক সমস্যার কারণে দ্রুত সার্ভারটি ব্যর্থ হওয়ার সম্ভাবনাও কম।
যা আমাকে মনে করিয়ে দেয়, আপনি যদি অনুরোধটি ব্যর্থ হয় তা যদি বুঝতে পারেন তবে তা করুন। আপনি ব্যর্থতাগুলি রোধ করতে না পারলেও এটি আপনাকে পরিস্থিতি আরও পরিচালনা করতে সহায়তা করতে পারে। উদাহরণস্বরূপ, আপনার কি সার্ভার সাইডে আরও ট্রান্সফার গতি দরকার?
আরো কিছু:
- বিশ্বজুড়ে একাধিক সার্ভার স্থাপন করুন এবং জিওলোকেশন অনুসারে সার্ভারটি বাছুন।
- সার্ভারের দিকে ভারসাম্য লোড করুন (একটি উত্সর্গীকৃত মেশিন সমস্ত অনুরোধ গ্রহণ করবে এবং সেগুলি আপনার সার্ভারগুলিতে রিলে করবে, আপনার সেখানে আপনার সমান্তরালতা বা আরও ভাল ব্যালেন্স কৌশল থাকতে পারে)।
এবং কে বলেছে যে এর মধ্যে একটিই আপনাকে করতে হবে? আপনি একটি লোডিং বার্তা রাখতে পারেন, দ্রুত বাছাইয়ের জন্য কব্জি জুড়ে ছড়িয়ে থাকা একাধিক সার্ভারগুলি জিজ্ঞাসা করতে পারেন এবং কেবলমাত্র সেখান থেকে লুপটিতে ব্যর্থতার চেষ্টা করুন এবং সেই সার্ভারগুলির প্রত্যেককেই লোড ব্যালেন্সিংয়ের সাথে মেশিনগুলির গুচ্ছ হতে হবে have । কেন না? ভাল, ব্যয় ...
খরচ
চারটি খরচ আছে:
- উন্নয়নের ব্যয় (সাধারণত খুব সস্তা)
- স্থাপনার ব্যয় (সাধারণত উচ্চ)
- ব্যয় রানটাইম (প্রয়োগের ধরণ এবং ব্যবসায়ের মডেলের উপর নির্ভর করে)
- ব্যর্থতার ব্যয় (সম্ভবত কম, তবে খুব সম্ভবত নয়)
আপনি তাদের ভারসাম্য বজায় রাখতে হবে।
উদাহরণস্বরূপ, আমাদের বলুন যে আপনি সন্তুষ্ট ব্যবহারকারী প্রতি এক ডলার উপার্জন করেন। যে আপনার প্রতিদিন 3000 ব্যবহারকারী আছে। অনুরোধগুলি প্রায় 50% সময় ব্যর্থ হয়। এবং অনুরোধটি ব্যর্থ হলে 2% ব্যবহারকারী প্রদান ছাড়াই চলে যান। এর অর্থ হ'ল আপনি প্রতিদিন (3000 * 50% * 2%) 30 ডলার হারাচ্ছেন। এখন, আসুন আমরা বলি যে নতুন বৈশিষ্ট্যটি বিকাশ করতে আপনার 100 ডলার খরচ হবে এবং সার্ভারগুলি স্থাপন করতে আপনার 800 ডলার ব্যয় করতে হবে - এবং রানটাইম ব্যয় উপেক্ষা করে - এর অর্থ আপনার ((100 + 800) / 30 এ বিনিয়োগের ফিরতি হবে ) 30 দিন. এখন, আপনি আপনার বাজেট পরীক্ষা করে সিদ্ধান্ত নিতে পারেন।
এই মানগুলি বাস্তবতার প্রতিনিধি হিসাবে বিবেচনা করবেন না, আমি তাদের গণিতের প্রত্যয় হিসাবে বেছে নিয়েছি।
Addendums:
- মনে রাখবেন যে আমি বিশদটিও উপেক্ষা করছি। উদাহরণস্বরূপ, আপনার সামান্য স্থাপনার ব্যয় থাকতে পারে তবে সিপিইউর জন্য অর্থ প্রদান করতে হবে এবং আপনার এটি বিবেচনা করা দরকার।
- কিছু ক্লায়েন্ট যদি আপনি তাদের অতিরিক্ত অর্থের অনুরোধগুলিতে তাদের ডেটা প্যাকেজটি অপচয় না করেন তবে তাদের প্রশংসা করতে পারে।
- আপনার পণ্যের উন্নতি প্রাকৃতিক বিজ্ঞাপন আনতে সহায়তা করতে পারে।
- সুযোগ ব্যয় ভুলবেন না। আপনি অন্য কিছু বিকাশ করা উচিত?
বিষয়টি হ'ল, যদি আপনি ব্যালেন্সিং ব্যয়ের ক্ষেত্রে সমস্যাটি বিবেচনা করেন তবে আপনি যে কৌশলগুলি বিবেচনা করছেন তার জন্য ব্যয়ের একটি প্রাক্কলন তৈরি করতে পারেন এবং সিদ্ধান্তটি নির্ধারণ করতে এই বিশ্লেষণটি ব্যবহার করতে পারেন।
স্বজ্ঞা
অনুভূতি যদি অভিজ্ঞতা দ্বারা পালিত হয়। আমি প্রতিবার এই জাতীয় বিশ্লেষণ করার পরামর্শ দিচ্ছি না। কিছু লোক করেন, এবং এটি ঠিক আছে। আমি আপনাকে এটি সম্পর্কে কিছুটা বোঝার পরামর্শ দিচ্ছি এবং এর জন্য একটি স্বজ্ঞাততা বিকাশ করব।
প্রকৌশলে ফুটারমোর, প্রকৃত বিজ্ঞান থেকে আমরা যে জ্ঞান পাই তা বাদ দিয়ে আমরা অনুশীলনেও শিখি এবং কী কাজ করে এবং কী নয় তার গাইডলাইন সংকলন করে। অতএব, শিল্পের অবস্থা কী তা প্রায়শই বুদ্ধিমানের কাজ ... যদিও কখনও কখনও আপনাকে আপনার অঞ্চলের বাইরে দেখতে হবে।
এই ক্ষেত্রে, আমি অনলাইন ভিডিও গেমগুলিতে তাকান। তাদের লোড স্ক্রিন রয়েছে, তাদের একাধিক সার্ভার রয়েছে, তারা বিলম্বের ভিত্তিতে একটি সার্ভার বাছাই করবে এবং তারা এমনকি ব্যবহারকারীকে সার্ভারগুলি স্যুইচ করার অনুমতি দিতে পারে। আমরা জানি যে কাজ করে।
আমি প্রত্যেকটি অনুরোধে নেটওয়ার্ক ট্র্যাফিক এবং সার্ভারের সময় নষ্ট করার পরিবর্তে এটি করার পরামর্শ দিচ্ছি, এছাড়াও জেনে রাখুন যে অপ্রয়োজনীয় সার্ভারের পরেও ব্যর্থতা ঘটতে পারে।