मैं एक EventHub क्लाइंट एप्लिकेशन बना रहा हूं जो Azure पर इवेंट हब को संदेश भेजता है। अब जब मैं भेजने के लिए एक संदेश है (हर 5-6 सेकंड) मैं कक्षा EventHubClient का एक नया उदाहरण बनाने के लिए, तो मैं इसका इस्तेमाल डेटा भेजने के लिए:क्या मैं भेजे गए प्रत्येक संदेश के लिए EventHubClient बनाने में सही है?
public async static void SendListOfMeasurements(string eventHubName, string connectionString, List<Measurement> measurementsList, int maxMessageSize)
{
// Create EventHubClient
EventHubClient client = EventHubClient.CreateFromConnectionString(
connectionString,
eventHubName);
...
यह एक अच्छा अभ्यास है? या यह केवल स्टार्टअप पर इसे बनाना बेहतर है और फिर केवल Send विधि का उपयोग करें? प्रदर्शन के मामले में सबसे अच्छा परिदृश्य क्या है? भविष्य में भेजने की राशि बढ़ सकती है और संदेश की मात्रा
नीचे दिए गए उत्तरों के अतिरिक्त: यह समझें कि, प्रदर्शन के संदर्भ में, आमतौर पर संदेशों को भेजने के बजाय सैंडबैच या .SendBatchAsync का उपयोग करके बैच में संदेश भेजना बेहतर होता है। विशेष रूप से जब संदेश की दर अधिक हो जाती है। यह इस बात पर निर्भर करता है कि आप इन संदेशों को EventHub पर कितनी तेजी से वितरित करना चाहते हैं। –
@ पीटरबोन मैं आपके साथ सहमत हूं। संदेशों के बैच का उपयोग करना हमेशा एक अच्छा विकल्प है। मेरे मामले में मैं बैच को अधिकतम स्वीकृत बैच आकार तक सीमित करता हूं और फिर जब यह पूरा हो जाता है तो मैं बैच भेजता हूं (मेरे पास एक बड़ी संदेश राशि है)। –