এফসিএম থ্রটলিং এবং কোটা

আমাদের লক্ষ্য হলো FCM ব্যবহার করে পাঠানো প্রতিটি বার্তা সর্বদা পৌঁছে দেওয়া। তবে, প্রতিটি বার্তা পৌঁছে দেওয়ার ফলে কখনও কখনও ব্যবহারকারীর সামগ্রিক অভিজ্ঞতা খারাপ হয়। অন্য ক্ষেত্রে, FCM যেন সকল প্রেরকের জন্য একটি পরিবর্ধনযোগ্য পরিষেবা প্রদান করে, তা নিশ্চিত করতে আমাদের কিছু সীমা নির্ধারণ করতে হয়। এই বিভাগে বর্ণিত বিভিন্ন ধরনের সীমা ও কোটা আমাদের এই গুরুত্বপূর্ণ বিষয়গুলোর মধ্যে ভারসাম্য বজায় রাখতে সাহায্য করে।

ডাউনস্ট্রিম বার্তা থ্রটলিং

HTTP v1 API ডাউনস্ট্রিম মেসেজিংয়ের জন্য প্রজেক্ট-ভিত্তিক ও মিনিট-ভিত্তিক কোটা চালু করেছে। প্রতি মিনিটে ৬ লক্ষ মেসেজের ডিফল্ট কোটা ৯৯%-এরও বেশি FCM ডেভেলপারকে পরিষেবা দেয়, একই সাথে সিস্টেমের স্থিতিশীলতা রক্ষা করে এবং স্পাইকি প্রজেক্টের প্রভাব কমিয়ে আনে।

ট্র্যাফিকের আকস্মিক বৃদ্ধি বা আকস্মিকতার কারণে কোটা অতিক্রম করার ত্রুটি দেখা দিতে পারে। কোটা অতিক্রম করার পরিস্থিতিতে, পরবর্তী মিনিটে কোটা পুনরায় পূরণ না হওয়া পর্যন্ত সিস্টেমটি HTTP স্ট্যাটাস কোড 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED") প্রদর্শন করে। ওভারলোডের পরিস্থিতিতেও 429 প্রতিক্রিয়া আসতে পারে, তাই প্রকাশিত সুপারিশ অনুযায়ী 429 প্রতিক্রিয়াগুলো পরিচালনা করার জন্য আপনাকে দৃঢ়ভাবে উৎসাহিত করা হচ্ছে।

মনে রাখবেন:

  • ডাউনস্ট্রিম কোটা মেসেজ পরিমাপ করে, রিকোয়েস্ট নয়।
  • ক্লায়েন্ট ত্রুটি (HTTP স্ট্যাটাস কোড 400-499) গণনা করা হয় (429 বাদে)।
  • কোটা মিনিট-ভিত্তিক, কিন্তু এই মিনিটগুলো ঘড়ির সাথে মেলানো নেই।

পর্যবেক্ষণ কোটা

আপনি নিম্নলিখিত পদ্ধতি ব্যবহার করে গুগল ক্লাউড কনসোলে কোটা, ব্যবহার এবং ত্রুটি দেখতে পারেন:

  1. Google Cloud কনসোলে যান।
  2. এপিআই ও পরিষেবাগুলো নির্বাচন করুন।
  3. টেবিলের তালিকা থেকে Firebase Cloud Messaging API নির্বাচন করুন।
  4. কোটা ও সিস্টেম সীমা নির্বাচন করুন।

কোটা বৃদ্ধির জন্য অনুরোধ করুন

কোটা বৃদ্ধির অনুরোধ করার আগে নিশ্চিত করুন যে:

  • আপনার ব্যবহার প্রতিদিন কমপক্ষে একটানা ৫ মিনিট ধরে নিয়মিতভাবে কোটার ৮০% বা তার বেশি থাকে।
  • আপনার ক্লায়েন্ট ত্রুটির হার ৫%-এরও কম, বিশেষ করে সর্বোচ্চ ট্র্যাফিকের সময়।
  • আপনি বৃহৎ পরিসরে বার্তা পাঠানোর জন্য সর্বোত্তম পদ্ধতিগুলো মেনে চলেন।

যদি আপনি এই মানদণ্ডগুলো পূরণ করেন, তবে আপনি সর্বোচ্চ +২৫% পর্যন্ত কোটা বৃদ্ধির জন্য অনুরোধ জমা দিতে পারেন এবং FCM সেই অনুরোধটি পূরণ করার জন্য সম্ভাব্য সব ধরনের প্রচেষ্টা চালাবে (তবে কোনো বৃদ্ধি নিশ্চিত করা যাবে না)।

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

আরও জানতে, FCM কোটা দেখুন।

টপিক মেসেজ সীমা এবং ফ্যানআউট থ্রটলিং

আরও বিস্তারিত তথ্যের জন্য টপিক মেসেজিং কোটা এবং সীমা দেখুন।

সংকোচনযোগ্য বার্তা থ্রটলিং

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

উদাহরণস্বরূপ, আপনি যদি একটি ডিভাইসে প্রচুর পরিমাণে নতুন ইমেল সিঙ্ক করার অনুরোধ পাঠান, তাহলে আমরা পরবর্তী ইমেল সিঙ্ক করার অনুরোধটি কয়েক মিনিটের জন্য বিলম্বিত করতে পারি, যাতে ডিভাইসটি কম গড় হারে সিঙ্ক করতে পারে। ব্যবহারকারীর ব্যাটারির উপর প্রভাব সীমিত রাখার জন্যই এই গতি কমানো হয়।

যদি আপনার ব্যবহারের ক্ষেত্রে ঘন ঘন বার্তা পাঠানোর প্রয়োজন হয়, তাহলে অসংকোচনযোগ্য বার্তাগুলোই সঠিক বিকল্প হতে পারে। এই ধরনের বার্তাগুলোর ক্ষেত্রে, ব্যাটারির খরচ কমাতে সেগুলোর ভেতরে বিষয়বস্তু অন্তর্ভুক্ত করা নিশ্চিত করুন।

আমরা প্রতিটি ডিভাইসের প্রতিটি অ্যাপের জন্য একবারে ২০টি সংকুচিতযোগ্য বার্তা পাঠানোর সুযোগ সীমাবদ্ধ রেখেছি, এবং প্রতি ৩ মিনিটে ১টি করে বার্তা পুনরায় পূর্ণ হয়।

একটি ডিভাইসে সর্বোচ্চ বার্তা পাঠানোর হার

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

iOS-এর ক্ষেত্রে, রেট APNs সীমা অতিক্রম করলে আমরা একটি ত্রুটি দেখাই।