你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
EventHubProducerClient 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
负责发布到 EventData 特定事件中心的客户端,分批分组到一起。 根据发送时指定的选项,可以自动为事件分配可用分区,也可以请求特定的分区。
立即 EventHubProducerClient 发布,确保每个发送操作的确定性结果,但要求调用方负责生成和管理批处理。
如果立即发布事件并不重要,并且不需要最大化分区可用性,则建议考虑使用 EventHubBufferedProducerClient,它负责生成和管理批处理,以减少在应用程序代码中执行此操作的复杂性。
public class EventHubProducerClient : IAsyncDisposable
type EventHubProducerClient = class
interface IAsyncDisposable
Public Class EventHubProducerClient
Implements IAsyncDisposable
- 继承
-
EventHubProducerClient
- 实现
注解
建议在以下情况下允许分区分配:
- 发送事件需要高度可用。
- 事件数据应在所有可用分区之间均匀分布。
如果未指定分区,则使用以下规则自动选择分区:
- 使用轮循机制方法在所有可用分区之间平均分配事件。
- 如果某个分区不可用,事件中心服务将自动检测它,并将消息转发到另一个可用分区。
可以 EventHubProducerClient 安全地缓存并在应用程序的生存期内使用,这是应用程序定期或半定期发布事件时的最佳做法。 生成者负责确保高效的网络、CPU 和内存使用。 CloseAsync(CancellationToken)在应用程序关闭时调用 或 DisposeAsync() 将确保正确清理网络资源和其他非托管对象。
构造函数
属性
EventHubName |
生成者连接到的事件中心的名称,特定于包含它的事件中心命名空间。 |
FullyQualifiedNamespace |
与生成者关联的完全限定的事件中心命名空间。 这可能类似于 |
Identifier |
用于标识此生成者的唯一名称。 |
IsClosed |
指示此 EventHubProducerClient 是否已关闭。 |
方法
CloseAsync(CancellationToken) |
关闭生成者。 |
CreateBatchAsync(CancellationToken) |
创建可以使用基于 try 的模式添加到的大小 EventData 约束批。 如果事件超过批允许的最大大小,该批将不允许添加事件并使用其返回值发出该方案信号。 由于无法添加违反大小约束的事件,因此发布批处理不会在尝试将事件发送到事件中心服务时触发异常。 |
CreateBatchAsync(CreateBatchOptions, CancellationToken) |
创建可以使用基于 try 的模式添加到的大小 EventData 约束批。 如果事件超过批允许的最大大小,该批将不允许添加事件并使用其返回值发出该方案信号。 由于无法添加违反大小约束的事件,因此发布批处理不会在尝试将事件发送到事件中心服务时触发异常。 |
DisposeAsync() |
执行清理 使用 EventHubProducerClient的资源所需的任务,包括确保客户端本身已关闭。 |
GetEventHubPropertiesAsync(CancellationToken) |
检索与连接关联的事件中心的相关信息,包括存在的分区数及其标识符。 |
GetPartitionIdsAsync(CancellationToken) |
检索事件中心分区的标识符集。 |
GetPartitionPropertiesAsync(String, CancellationToken) |
检索有关事件中心的特定分区的信息,包括描述分区事件流中可用事件的元素。 |
SendAsync(EventDataBatch, CancellationToken) |
使用批处理方法将一组事件发送到关联的事件中心。 |
SendAsync(IEnumerable<EventData>, CancellationToken) |
将一组事件作为单个操作发送到关联的事件中心。 为了避免与在客户端中测量和验证大小相关的开销,验证将委托给事件中心服务,并延迟到调用操作为止。 如果指定的事件集的大小超过单个批允许的最大大小,则调用将失败。 |
SendAsync(IEnumerable<EventData>, SendEventOptions, CancellationToken) |
将一组事件作为单个操作发送到关联的事件中心。 为了避免与在客户端中测量和验证大小相关的开销,验证将委托给事件中心服务,并延迟到调用操作为止。 如果指定的事件集的大小超过单个批允许的最大大小,则调用将失败。 |