Ich erstelle eine EventHub-Clientanwendung, die eine Nachricht an einen Event Hub in Azure sendet. Nun, wenn ich eine Nachricht zu senden haben (alle 5-6 Sekunden) ich eine neue Instanz der Klasse EventHubClient, dann verwende ich es, Daten senden:Ist es korrekt, EventHubClient für jede Nachricht zu erstellen, die ich sende?
public async static void SendListOfMeasurements(string eventHubName, string connectionString, List<Measurement> measurementsList, int maxMessageSize)
{
// Create EventHubClient
EventHubClient client = EventHubClient.CreateFromConnectionString(
connectionString,
eventHubName);
...
Ist es eine gute Praxis? Oder ist es besser, es nur beim Start zu erstellen und dann nur die .Send-Methode zu verwenden? Was ist das beste Szenario in Bezug auf die Leistung? In der Zukunft könnte die Menge der Nachrichten erhöhen und auch die Menge der Nachrichten
Zusätzlich zu den Antworten unten: stellen Sie fest, dass es in Bezug auf die Leistung im Allgemeinen besser ist, Nachrichten im Stapel mit .SendBatch oder .SendBatchAsync zu senden, anstatt Nachrichten nacheinander zu senden. Vor allem, wenn die Rate der Nachrichten höher wird. Es hängt davon ab, wie schnell diese Nachrichten an den EventHub gesendet werden sollen. –
@PeterBons Ich stimme dir zu. Die Verwendung von Nachrichtenstapeln ist immer eine gute Wahl. In meinem Fall beschränke ich den Stapel auf die maximal erlaubte Stapelgröße und wenn er voll ist, sende ich den Stapel (ich habe eine riesige Anzahl von Nachrichten). –