मैं वर्तमान में सुविधा सीमित बैंडविड्थ पर काम कर रहा हूँ (मुझे मत पूछो क्यों, अपने मेरा निर्णय नहीं) आवेदन के लिए जो सर्वर के बीच पेलोड के साथ संदेश भेजने के लिए JMS (स्प्रिंग ढांचे JMS और सक्रिय MQ अर्थात्) का उपयोग करें और ग्राहकों।JMS संदेश आकार
मुझे आने वाले जेएमएस संदेशों को सीमित करने के लिए बहुत सी थ्रॉटलिंग विधियां मिलीं (लेकिन उनमें से कोई भी वास्तविक बैंडविड्थ लोड पर आधारित नहीं है), हालांकि मुझे आउटगोइंग संदेश प्रवाह को सीमित करने का कोई भी संभावित तरीका नहीं मिला। तो मैंने अपने आप पर Leaky bucket algorithm लिखने का फैसला किया।
वहाँ किसी तरह JMS संदेश का आकार प्राप्त करने के लिए कैसे है? जावा में 'sizeof' कार्यान्वयन के अलावा (In Java, what is the best way to determine the size of an object?)
आने वाले संदेश प्रवाह को सीमित क्यों नहीं किया जाएगा - जो ActiveMQ आपको प्रोड्यूसरफ्लो कंट्रोल और मेमोरीलिमिट्स के उपयोग के साथ करने की अनुमति देता है। मुझे यह जानकर उत्सुकता है कि आप आउटगोइंग संदेशों को सीमित क्यों करना चाहते हैं। इसके अलावा - इस प्रकार की चीज़ को आपके ब्रोकर के सामने बैठे किसी भी प्रकार के एप्लिकेशन डिलिवरी कंट्रोलर से बेहतर नियंत्रित नहीं किया जाएगा (मान लीजिए कि आपके पास वह विकल्प भी है)। – whaley
हमारा ग्राहक उत्पादकों से आउटगोइंग बैंडविड्थ को सीमित करना चाहता है (मान लीजिए, ग्राहक के पास 100 एमबीबी बैंडविड्थ है, लेकिन वह केवल 10 एमबीटी का उपयोग करना चाहता है)। ये मुझे पागल कर रहा है। जेएमएस को जितनी जल्दी हो सके संदेश वितरित करने के लिए बनाया जाता है, इसलिए मैं वास्तव में उस मांग को समझ नहीं पा रहा हूं। लेकिन दुख की बात यह है कि यह मेरे फैसले पर नहीं है। – Sorceror