EventHubClient.SendAsync メソッド

定義

オーバーロード

SendAsync(EventData)

EventHub に送信 EventData します。 送信された EventData は、任意に選択した EventHubs パーティションに配置されます。

EventHubs に送信する方法は 3 つあります。各方法はメソッドとして公開されています (sendBatch オーバーロードと共に)。

i. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) または SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

次の場合に送信するには、このメソッドを使用します。

a) 操作は SendAsync(EventData) 高可用性である必要があり、

b) データは、すべてのパーティション間で均等に分散する必要があります。例外は、パーティションのサブセットが使用できない場合です

SendAsync(EventData)EventData Service Gateway に を送信します。これにより、EventData が EventHub のいずれかのパーティションに転送されます。 メッセージ転送アルゴリズムを次に示します。

i. EventDatas を EventHub パーティションに転送し、すべてのパーティション間でデータを均等に分散します (例: EventDatas をすべての EventHub パーティションにラウンドロビンする)

ii. EventHub パーティションの 1 つが一瞬使用できない場合、Service Gateway によって自動的に検出され、メッセージが別の使用可能なパーティションに転送され、送信操作が高可用性になります。

SendAsync(EventDataBatch)

EventDataBatchのバッチをEventData送信します。

SendAsync(IEnumerable<EventData>)

EventData バッチを EventHub に送信します。 送信された EventData は、任意に選択した EventHub パーティションに配置されます。 これは、EventHub に送信する最も推奨される方法です。

EventHubs に送信する方法は 3 つあります。この特定の種類の送信を理解するには、単一EventDataの を送信するために使用されるオーバーロード SendAsync(EventData)を参照します。 のバッチ EventDataを送信する必要がある場合は、このオーバーロードを使用します。

のバッチを EventData送信すると、次の場合に便利です。

i. 効率的な送信 - の EventData バッチを送信すると、EventHub のサービスに対して作成されたセッションの数を最適に使用して、全体的なスループットが最大化されます。

ii. トランザクションで複数 EventDataの を送信します。 ACID プロパティを取得するために、ゲートウェイ サービスはバッチ内のすべての EventDataの を単一の EventHub パーティションに転送します。

SendAsync(EventData, String)

partitionKey を含む ' をEventData EventHub に送信します。 partitionKey を持つ すべての EventData' は、同じパーティションに確実に着陸します。 この送信パターンでは、一般提供と待機時間に対するデータの相関関係が強調されます。

EventHubs に送信する方法は 3 つあります。各方法はメソッドとして公開されます (バッチオーバーロードと共に)。

i. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) または SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

次の場合は、この種類の送信を使用します。

a) Sender インスタンスに基づくイベントの関連付けが必要です。送信者は UniqueId を生成し、それを partitionKey として設定できます。これは、受信したメッセージで関連付けに使用できます

b) クライアントは、パーティション間でのデータの分散を制御したいと考えています。

複数の PartitionKey を 1 つのパーティションにマップできます。 EventHubs サービスでは、独自のハッシュ アルゴリズムを使用して PartitionKey を PartitionId にマップします。 この種類の送信 (特定の partitionKey を使用して送信) を使用すると、パーティションが均等に分散されない場合があります。
SendAsync(IEnumerable<EventData>, String)

'batch of EventData with the same partitionKey' を EventHub に送信します。 partitionKey を持つ すべての EventData' は、同じパーティションに確実に着陸します。 複数の PartitionKey は、1 つのパーティションにマップされます。

EventHubs に送信する方法は 3 つあります。この特定の種類の送信を理解するには、同じ種類の送信であり、単一EventDataの を送信するために使用される オーバーロード SendAsync(EventData, String)を参照します。

のバッチを EventData送信すると、次の場合に便利です。

i. 効率的な送信 - の EventData バッチを送信すると、EventHubs サービスに対して作成されたセッションの数を最適に使用して全体的なスループットが最大化されます。

ii. 1 つのトランザクションで複数のイベントを送信する。 これは、バッチで送信されるすべてのイベントが同じ partitionKey を持つ必要がある理由です (そのため、1 つのパーティションにのみ送信されます)。

SendAsync(EventData)

ソース:
EventHubClient.cs

EventHub に送信 EventData します。 送信された EventData は、任意に選択した EventHubs パーティションに配置されます。

EventHubs に送信する方法は 3 つあります。それぞれメソッドとして公開されます (sendBatch オーバーロードと共に)。

i. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) または SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

次の場合に送信するには、このメソッドを使用します。

a) 操作を SendAsync(EventData) 高可用性にする必要があります。

b) データは、すべてのパーティション間で均等に分散する必要があります。例外は、パーティションのサブセットが使用できない場合です

SendAsync(EventData) は Service Gateway に を EventData 送信します。これにより、EventData が EventHub のいずれかのパーティションに転送されます。 メッセージ転送アルゴリズムを次に示します。

i. すべてのパーティション間でデータを均等に分散することで、EventDatas を EventHub パーティションに転送します (例: EventDatas をすべての EventHub パーティションにラウンドロビンする)

ii. EventHub パーティションの 1 つが一瞬使用できない場合、Service Gateway によって自動的に検出され、メッセージが別の使用可能なパーティションに転送され、送信操作が高可用性になります。

public System.Threading.Tasks.Task SendAsync (Microsoft.Azure.EventHubs.EventData eventData);
member this.SendAsync : Microsoft.Azure.EventHubs.EventData -> System.Threading.Tasks.Task
Public Function SendAsync (eventData As EventData) As Task

パラメーター

eventData
EventData

送信 EventData する 。

戻り値

送信操作が完了したときに完了するタスク。

こちらもご覧ください

適用対象

SendAsync(EventDataBatch)

ソース:
EventHubClient.cs

EventDataBatchのバッチをEventData送信します。

public System.Threading.Tasks.Task SendAsync (Microsoft.Azure.EventHubs.EventDataBatch eventDataBatch);
member this.SendAsync : Microsoft.Azure.EventHubs.EventDataBatch -> System.Threading.Tasks.Task
Public Function SendAsync (eventDataBatch As EventDataBatch) As Task

パラメーター

eventDataBatch
EventDataBatch

EventHub に送信するイベントのバッチ

戻り値

送信操作が完了したときに完了するタスク。

適用対象

SendAsync(IEnumerable<EventData>)

ソース:
EventHubClient.cs

EventData バッチを EventHub に送信します。 送信された EventData は、任意に選択した EventHub パーティションに配置されます。 これは EventHub に送信する最も推奨される方法です。

EventHubs に送信する方法は 3 つあります。この特定の種類の送信を理解するには、単一EventDataの を送信するために使用される オーバーロード SendAsync(EventData)を参照します。 のバッチ EventDataを送信する必要がある場合は、このオーバーロードを使用します。

のバッチを EventData送信すると、次の場合に便利です。

i. 効率的な送信 - の EventData バッチを送信すると、EventHub のサービスに対して作成されたセッションの数を最適に使用して、全体的なスループットが最大化されます。

ii. トランザクションで複数 EventDataの を送信します。 ACID プロパティを取得するために、ゲートウェイ サービスはバッチ内のすべての EventDataの を単一の EventHub パーティションに転送します。

public System.Threading.Tasks.Task SendAsync (System.Collections.Generic.IEnumerable<Microsoft.Azure.EventHubs.EventData> eventDatas);
member this.SendAsync : seq<Microsoft.Azure.EventHubs.EventData> -> System.Threading.Tasks.Task
Public Function SendAsync (eventDatas As IEnumerable(Of EventData)) As Task

パラメーター

eventDatas
IEnumerable<EventData>

EventHub に送信するイベントのバッチ

戻り値

送信操作が完了したときに完了するタスク。

サンプル コード:

var client = EventHubClient.Create("__connectionString__");
while (true)
{
    var events = new List<EventData>();
    for (int count = 1; count < 11; count++)
    {
        var payload = new PayloadEvent(count);
        byte[] payloadBytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload));
        var sendEvent = new EventData(payloadBytes);
        var applicationProperties = new Dictionary<string, string>();
        applicationProperties["from"] = "csharpClient";
        sendEvent.Properties = applicationProperties;
        events.Add(sendEvent);
    }

    await client.SendAsync(events);
    Console.WriteLine("Sent Batch... Size: {0}", events.Count);
}

こちらもご覧ください

適用対象

SendAsync(EventData, String)

ソース:
EventHubClient.cs

partitionKey を含む ' をEventData EventHub に送信します。 partitionKey を持つ すべての EventData' は、同じパーティションに確実に着陸します。 この送信パターンでは、一般提供と待機時間に対するデータの相関関係が強調されます。

EventHubs に送信する方法は 3 つあります。各方法はメソッドとして公開されます (バッチ処理されたオーバーロードと共に)。

i. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) または SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

次の場合は、この種類の送信を使用します。

a) Sender インスタンスに基づくイベントの関連付けが必要です。送信者は UniqueId を生成し、それを partitionKey として設定できます。これは、受信したメッセージで関連付けに使用できます

b) クライアントは、パーティション間でのデータの分散を制御したいと考えています。

複数の PartitionKey を 1 つのパーティションにマップできます。 EventHubs サービスでは、独自のハッシュ アルゴリズムを使用して PartitionKey を PartitionId にマップします。 この種類の送信 (特定の partitionKey を使用して送信) を使用すると、パーティションが均等に分散されない場合があります。
public System.Threading.Tasks.Task SendAsync (Microsoft.Azure.EventHubs.EventData eventData, string partitionKey);
member this.SendAsync : Microsoft.Azure.EventHubs.EventData * string -> System.Threading.Tasks.Task
Public Function SendAsync (eventData As EventData, partitionKey As String) As Task

パラメーター

eventData
EventData

送信 EventData する 。

partitionKey
String

partitionKey は、EventData を送信する partitionId を決定するためにハッシュされます。 受信メッセージでは、 で PartitionKeyアクセスできます。

戻り値

送信操作が完了したときに完了するタスク。

こちらもご覧ください

適用対象

SendAsync(IEnumerable<EventData>, String)

ソース:
EventHubClient.cs

'batch of EventData with the same partitionKey' を EventHub に送信します。 partitionKey を持つ すべての EventData' は、同じパーティションに確実に着陸します。 複数の PartitionKey は、1 つのパーティションにマップされます。

EventHubs に送信する方法は 3 つあります。この特定の種類の送信を理解するには、同じ種類の送信であり、単一EventDataの を送信するために使用される オーバーロード SendAsync(EventData, String)を参照します。

のバッチを EventData送信すると、次の場合に便利です。

i. 効率的な送信 - の EventData バッチを送信すると、EventHubs サービスに対して作成されたセッションの数を最適に使用して全体的なスループットが最大化されます。

ii. 1 つのトランザクションで複数のイベントを送信する。 これは、バッチで送信されるすべてのイベントが同じ partitionKey を持つ必要がある理由です (そのため、1 つのパーティションにのみ送信されます)。

public System.Threading.Tasks.Task SendAsync (System.Collections.Generic.IEnumerable<Microsoft.Azure.EventHubs.EventData> eventDatas, string partitionKey);
member this.SendAsync : seq<Microsoft.Azure.EventHubs.EventData> * string -> System.Threading.Tasks.Task
Public Function SendAsync (eventDatas As IEnumerable(Of EventData), partitionKey As String) As Task

パラメーター

eventDatas
IEnumerable<EventData>

EventHub に送信するイベントのバッチ

partitionKey
String

partitionKey は、EventData を送信する partitionId を決定するためにハッシュされます。 受信メッセージでは、 で PartitionKeyアクセスできます。

戻り値

送信操作が完了したときに完了するタスク。

こちらもご覧ください

適用対象