ব্যান্ডউইদথ সংরক্ষণের জন্য একাধিক এইচটিটিপি অনুরোধগুলি মার্জ করা কি ভাল ধারণা?


16

আমি একটি একক পৃষ্ঠার অ্যাপ্লিকেশন প্রস্তুত করছি যা মাঝে মাঝে ধীর মোবাইল সংযোগের জন্য ব্যবহৃত হবে। এর কিছু অংশ এপিআই অনুরোধের ক্ষেত্রে যথেষ্ট ভারী (নতুন স্ক্রিন প্রদর্শনের জন্য দশটি আলাদা সংস্থান আনছে)।

এখন, সমস্ত প্রয়োজনীয় ডেটা সরবরাহ করে এমন পরিষেবাগুলিতে এই পরিষেবাগুলিকে একীভূত করা কি ভাল ধারণা, তবে REST নীতিগুলির ক্ষেত্রে "খাঁটি" নয়? প্রত্যাশিত উল্লেখযোগ্য পারফরম্যান্সের লাভ কি আছে?


3
"ভাল ধারণা" হ'ল এটিই আপনার সফ্টওয়্যারটির কার্য সম্পাদন এবং রক্ষণাবেক্ষণের প্রয়োজনীয়তা যথাযথভাবে পূরণ করে।
রবার্ট হার্ভে

1
প্রতিক্রিয়াগুলির সংমিশ্রণের সুবিধাটি আসলে তাত্পর্যপূর্ণ হতে পারে না তবে একবার আপনি একবার বেঁচে থাকা ব্যবহারের বিষয়টি নিশ্চিত করে এবং সমান্তরালে লোড করা যায় এমন অনুরোধগুলি একে অপরকে অবরুদ্ধ না করে লোড করা হয় তা নিশ্চিত করে। পরিমাপ, পরিমাপ, পরিমাপ। অনুমান করবেন না।
মিথ্যা রায়ান

এটি করুন, এটি আপনাকে কেবলমাত্র ব্যান্ডউইথকেই বাঁচায় না, এটি আপনাকে আইও ক্রিয়াকলাপগুলি পুনরায় অর্ডার করারও অনুমতি দেবে যাতে আপনি IO এর কার্যকারিতা উন্নতি করতে পারেন। এটি প্রায়শই একটি সিস্টেমে বোতলের ঘা হয়ে থাকবে এবং থ্রুপুটটিকে দুর্দান্তভাবে উন্নত করবে।
অবগত

উত্তর:


18

আরআরইএসটির অন্যতম সুবিধা হ'ল traditionalতিহ্যবাহী এইচপি ক্যাশগুলির মাধ্যমে অনুরোধগুলি ক্যাশে করার ক্ষমতা (ধরে নেওয়া যে এগুলি ক্যাশেযোগ্য অনুরোধসমূহ)।

যখন আপনার একক, বৃহত্তর, কম ঘন ঘন ব্যবহৃত হয় এবং সম্ভবত বিভিন্ন অনুরোধ হয় (আমি এবার আইটেম a,b,c,dএবং a,b,d,eপরবর্তী সময় আইটেম আনতে যাব ) আপনি অনুরোধটিকে ক্যাশে মিস হওয়ার সম্ভাবনা বেশি করে দেন এবং ক্যাশে থেকে মেয়াদ উত্তীর্ণ হওয়ার সম্ভাবনা থাকে আপনি এবং উত্স মধ্যে কোথাও বসে।

উপরে উল্লিখিত দুটি সেট অনুরোধের ভিত্তিতে, দ্বিতীয় অনুরোধে %৫% ক্যাশে হিট রেট থাকতে পারে এবং eচারটি জিনিসের পরিবর্তে কেবলমাত্র দ্রুততর আনতে হবে।

মনে রাখবেন যে লোকেদের এটি ব্যবহার করার সাথে সাথে এটি তাত্ক্ষণিকভাবে স্পষ্ট নাও হতে পারে কারণ যে কেশে মিস অনুরোধের প্রথম সেটটি করে সে এখনও ক্যাশে মিস করবে না।

এটি এমনটি বলার অপেক্ষা রাখে না যে এটি এমন একটি মোবাইল নেটওয়ার্ক সংযোগে আদর্শ হবে যেখানে অ-লোকাল ক্যাশে হিট পাওয়ার সম্ভাবনা কম। তবে গরম দাগ বা অন্যান্য ওয়াইফাই পরিস্থিতিতে ক্যাশে হিট করা আরও বেশি কার্যকর হতে পারে।

এর বেশিরভাগ অংশই আবার আপনার অ্যাপ্লিকেশন কীভাবে কাজ করে তা সাপেক্ষে। এটি কি শুরুতে এই সমস্ত ডেটা জিজ্ঞাসা করছে? বা আমরা এমন কোনও পৃষ্ঠা লোড সম্পর্কে কথা বলছি যেখানে প্রতিক্রিয়া সময় প্রত্যাশা আলাদা?

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


1
ক্যাশিং উল্লেখ করার জন্য +1। আপনি একটি অনুরোধে আরও সংস্থান হিসাবে জিজ্ঞাসা করবেন, ক্যাশে মিস হওয়ার সম্ভাবনা তত বেশি, তবে HTTP ওভারহেড কম।
ব্র্যান্ডন

8

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

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

অথবা, আপনি এটি সমস্ত সম্ভাবনায় উভয় উপায়ে করতে চাইবেন।


5

পরীক্ষা করে দেখুন এই ড্রপবক্স টেক ব্লগ নিবন্ধ

আপনার সমস্ত চিত্রের থাম্বনেইসগুলি পুনরুদ্ধার করার জন্য আপনি প্রস্তাব করেছিলেন ঠিক কীভাবে এবং কীভাবে তারা কার্যকরভাবে সমাধান করেছিল সে সম্পর্কে তারা এখানে বিশদে বিশদভাবে বর্ণনা করেছেন। এটি বলা উচিত যে তারা সমস্যাটি মূল্যবান কিনা তা দেখার জন্য তারা পরিমাপের পরিমাপ করেন এবং দৃশ্যত তা।

সংক্ষিপ্ত সারাংশ:

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


তবে তারা বলছেন এটি একটি অস্থায়ী সমাধান।
ইয়ামাজোরস

3

সংক্ষেপে: আপনার পদ্ধতির কিছুটা সঠিক এবং একটি মোড়ক পরিষেবা থেকে উপকার পেতে পারে।

এই পরিষেবাটি বিদ্যমান একক কলগুলিকে একটি পরিষেবা পক্ষের পদ্ধতিতে একত্রিত করবে। ক্লায়েন্টের কাছ থেকে পরিষেবাদি পক্ষের কলগুলিকে একত্রিত করে এবং আপনার সম্ভবত এখন অবধি থাকা সমস্ত একক, পরমাণু, বিশ্রামের কলগুলি ব্যবহার করে Do

সুতরাং, অনুরোধগুলি ক্যাশে করার ক্ষমতা হিসাবে আপনি আরআরইএসটি থেকে উপকার পেতে থাকবেন।

যাইহোক, শেষ পর্যায়ে এটি পরিষেবা / সার্ভারের অবকাঠামোগত কর্মক্ষমতা এবং ক্লায়েন্ট পরিবেশের মধ্যে এটি ফোটবে যা এটি গ্রাস করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.