你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
PartitionSender.SendAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
SendAsync(EventData) |
发送到 EventData 特定的 EventHub 分区。 创建此 PartitionSender 时,已预先确定目标分区。 此发送模式强调与正式发布和延迟相关的数据关联。 有 3 种方法可以发送到 EventHubs,每种方法都作为方法 (公开,以及其 sendBatch 重载) : i. SendAsync(EventData) 或 SendAsync(IEnumerable<EventData>) ii. SendAsync(EventData, String) 或 SendAsync(IEnumerable<EventData>, String) iii. SendAsync(EventData) 或 SendAsync(IEnumerable<EventData>) 在以下的情况下使用此类型的发送:a. 客户端希望直接控制跨分区的数据分布。 在这种情况下,客户端负责确保每个事件中心分区至少有一个发送方。 b. 用户不能使用分区键将事件定向到特定分区,但需要将数据与分区方案相关联。 |
SendAsync(EventDataBatch) |
在 中EventDataBatch发送一批 EventData 。 |
SendAsync(IEnumerable<EventData>) |
发送到 EventData 特定的 EventHub 分区。 创建此 PartitionSender 时预先确定目标分区。 有 3 种方法可以发送到 EventHubs,若要了解此特定类型的发送,请参阅重载 SendAsync(EventData),它是同一类型的发送,用于发送单个 EventData。 在以下情况下,发送一批 EventData的 非常有用:i. 高效发送 - 发送一批 EventData 通过使用创建到 EventHubs 服务的会话数以最佳方式最大化总体吞吐量。 ii. 在事务中发送多个 EventData。 为了实现 ACID 属性,网关服务会将批处理中的所有 转发 EventData到单个 EventHub 分区。 |
SendAsync(EventData)
- Source:
- PartitionSender.cs
发送到 EventData 特定的 EventHub 分区。 创建此 PartitionSender 时,已预先确定目标分区。 此发送模式强调与正式发布和延迟相关的数据关联。
有 3 种方法可以发送到 EventHubs,每种方法都作为方法 (公开,以及其 sendBatch 重载) :
i. SendAsync(EventData) 或 SendAsync(IEnumerable<EventData>)
ii. SendAsync(EventData, String) 或 SendAsync(IEnumerable<EventData>, String)
iii. SendAsync(EventData) 或 SendAsync(IEnumerable<EventData>)
在以下的情况下使用此类型的发送:a. 客户端希望直接控制跨分区的数据分布。 在这种情况下,客户端负责确保每个事件中心分区至少有一个发送方。
b. 用户不能使用分区键将事件定向到特定分区,但需要将数据与分区方案相关联。
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 超出了服务设置的预定义限制。 默认值为 256k 字节。
事件中心服务在操作期间遇到问题。
适用于
SendAsync(EventDataBatch)
- Source:
- PartitionSender.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>)
- Source:
- PartitionSender.cs
发送到 EventData 特定的 EventHub 分区。 创建此 PartitionSender 时预先确定目标分区。
有 3 种方法可以发送到 EventHubs,若要了解此特定类型的发送,请参阅重载 SendAsync(EventData),它是同一类型的发送,用于发送单个 EventData。
在以下情况下,发送一批 EventData的 非常有用:i. 高效发送 - 发送一批 EventData 通过使用创建到 EventHubs 服务的会话数以最佳方式最大化总体吞吐量。
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 的事件批
返回
一个任务,在发送操作完成时完成。
例外
的总大小 EventData 超出了服务设置的预定义限制。 默认值为 256k 字节。
事件中心服务在操作期间遇到问题。
示例
示例代码:
EventHubClient client = EventHubClient.Create("__connectionString__");
PartitionSender senderToPartitionOne = client.CreatePartitionSender("1");
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 senderToPartitionOne.SendAsync(events);
Console.WriteLine("Sent Batch... Size: {0}", events.Count);
}