你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

EventHubClient 类

定义

Anchor 类 - 所有 EventHub 客户端操作都从这里开始。 请参阅CreateFromConnectionString(String)

public abstract class EventHubClient : Microsoft.Azure.EventHubs.ClientEntity
type EventHubClient = class
    inherit ClientEntity
Public MustInherit Class EventHubClient
Inherits ClientEntity
继承
EventHubClient

属性

ClientId

获取客户端 ID。

(继承自 ClientEntity)
EnableReceiverRuntimeMetric

获取或设置一个值,该值指示是否启用接收方的运行时指标。

EventHubName

获取 EventHub 的名称。

IsClosed

返回一个布尔值,该值表示客户端对象是否关闭。

(继承自 ClientEntity)
RegisteredPlugins

获取此客户端当前注册的插件的列表。

(继承自 ClientEntity)
RetryPolicy

获取 RetryPolicy ClientEntity 的 。

(继承自 ClientEntity)
WebProxy

获取或设置 Web 代理。 仅当传输类型设置为 AmqpWebSocket 时,代理才适用。 如果未设置,将遵循系统范围的代理设置。

方法

Close()

关闭 ClientEntity。

(继承自 ClientEntity)
CloseAsync()

关闭并释放与 关联的 EventHubClient资源。

Create(EventHubsConnectionStringBuilder)

使用指定的连接字符串生成器创建事件中心客户端的新实例。

CreateBatch()

创建一个批,可在其中添加事件数据对象供以后的 SendAsync 调用使用。

CreateBatch(BatchOptions)

创建一个批,可在其中添加事件数据对象供以后的 SendAsync 调用使用。

CreateEpochReceiver(String, String, EventPosition, Int64, ReceiverOptions)

使用给定 EventPosition创建基于 Epoch 的 EventHub 接收器。 接收方是为特定使用者组中的特定 EventHub 分区创建的。

创建基于纪元的接收器时,请务必注意以下事项:

- 所有权强制实施:创建基于纪元的接收方后,在关闭组合的所有接收器之前,无法向同一 consumerGroup-Partition 组合创建非纪元接收器。

- 所有权窃取:如果为 consumerGroup-Partition 组合创建了具有较高纪元值的接收器,则将强制关闭该组合的任何较旧的纪元接收器。

- 由于对 consumerGroup-Partition 组合失去所有权而关闭的任何接收方都将从该接收方获取所有操作的 ReceiverDisconnectedException。
CreateFromConnectionString(String)

使用指定的连接字符串创建事件中心客户端的新实例。 可以使用事件中心的名称填充 EntityPath 属性。

CreatePartitionSender(String)

创建一个 PartitionSender ,它可以直接将 的 发布到 EventData特定的 EventHub 分区, (发送方类型 iii.在以下列表中) 。

有 3 种发送到 EventHubs 的模式/方法:

i. SendAsync(EventData)SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String)SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData)SendAsync(IEnumerable<EventData>)

CreateReceiver(String, String, EventPosition, ReceiverOptions)

使用给定 EventPosition创建 EventHub 接收器。 接收方是为特定使用者组中的特定 EventHub 分区创建的。

CreateWithAzureActiveDirectory(Uri, String, AzureActiveDirectoryTokenProvider+AuthenticationCallback, String, Nullable<TimeSpan>, TransportType)

使用 Azure Active Directory 身份验证创建 的新实例 EventHubClient

CreateWithManagedIdentity(Uri, String, Nullable<TimeSpan>, TransportType)

使用 Azure 托管标识身份验证创建 的新实例 EventHubClient

CreateWithTokenProvider(Uri, String, ITokenProvider, Nullable<TimeSpan>, TransportType)

使用指定的终结点、实体路径和令牌提供程序创建事件中心客户端的新实例。

GetPartitionRuntimeInformationAsync(String)

检索事件中心的指定分区的运行时信息。

GetRuntimeInformationAsync()

检索 EventHub 运行时信息

OnCloseAsync()

Anchor 类 - 所有 EventHub 客户端操作都从这里开始。 请参阅CreateFromConnectionString(String)

OnCreateReceiver(String, String, EventPosition, Nullable<Int64>, ReceiverOptions)

Anchor 类 - 所有 EventHub 客户端操作都从这里开始。 请参阅CreateFromConnectionString(String)

OnGetPartitionRuntimeInformationAsync(String)

Anchor 类 - 所有 EventHub 客户端操作都从这里开始。 请参阅CreateFromConnectionString(String)

OnGetRuntimeInformationAsync()

Anchor 类 - 所有 EventHub 客户端操作都从这里开始。 请参阅CreateFromConnectionString(String)

OnRetryPolicyUpdate()

在此处处理重试策略更新。

RegisterPlugin(EventHubsPlugin)

EventHubsPlugin注册要用于此客户端的 。

(继承自 ClientEntity)
SendAsync(EventData)

发送到 EventData EventHub。 发送的 EventData 将位于任意选择的任何 EventHubs 分区上。

有 3 种方法可以发送到 EventHubs,每种方法都作为方法 (公开,以及其 sendBatch 重载) :

i. SendAsync(EventData)SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String)SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData)SendAsync(IEnumerable<EventData>)

在以下的情况下使用此方法发送:

) 操作 SendAsync(EventData) 应高度可用,并且

b) 数据需要在所有分区之间均匀分布;异常为,当分区的子集不可用时

SendAsync(EventData)EventData 发送到服务网关,而服务网关又会将 EventData 转发到 EventHub 的分区之一。 下面是消息转发算法:

i. 通过将数据平均分布到所有分区,将 EventData 转发到 EventHub 分区 (例如:将 EventData 轮循机制分配给所有 EventHub 分区)

ii. 如果其中一个 EventHub 分区暂时不可用,服务网关将自动检测它,并将消息转发到另一个可用分区 ,使发送操作高度可用。

SendAsync(EventData, String)

将带有 partitionKey 的 'EventData 发送到 EventHub。 保证所有 EventData具有 partitionKey 的 都位于同一分区上。 此发送模式强调与正式发布和延迟相关的数据关联。

有 3 种方法可以发送到 EventHubs,每种方法都作为方法公开 (及其批处理重载) :

i. SendAsync(EventData)SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String)SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData)SendAsync(IEnumerable<EventData>)

在以下的情况下使用此类型的发送:

a) 需要基于发送方实例关联事件;发送方可以生成 UniqueId 并将其设置为 partitionKey - 在接收的消息上,该分区可用于关联

b) 客户端想要控制跨分区的数据分布。

多个 PartitionKey 可以映射到一个分区。 EventHubs 服务使用专有哈希算法将 PartitionKey 映射到 PartitionId。 使用此类型的发送 (使用特定 partitionKey) 发送有时可能会导致分区分布不均匀。
SendAsync(EventDataBatch)

在 中EventDataBatch发送一批 EventData

SendAsync(IEnumerable<EventData>)

将一批 EventData 发送到 EventHub。 发送的 EventData 将位于任意选择的任何 EventHub 分区上。 这是发送到 EventHub 的最推荐方式。

有 3 种方法可以发送到 EventHubs,若要了解此特定类型的发送,请参阅重载 ,该重载 SendAsync(EventData)用于发送单个 EventData。 如果需要发送一批 EventData,请使用此重载。

在以下情况下,发送一批 EventData的 非常有用:

i. 高效发送 - 发送一批 EventData 通过使用创建到 EventHub 服务的会话数以最佳方式最大化总体吞吐量。

ii. 在事务中发送多个 EventData。 为了识别 ACID 属性,网关服务会将批处理中的所有 转发 EventData到单个 EventHub 分区。

SendAsync(IEnumerable<EventData>, String)

将具有相同 partitionKey 的 EventData “批”发送到 EventHub。 保证所有 EventData具有 partitionKey 的 都位于同一分区上。 多个 PartitionKey 的 将映射到一个分区。

有 3 种方法可以发送到 EventHubs,若要了解此特定类型的发送,请参阅重载 SendAsync(EventData, String),它是同一类型的发送,用于发送单个 EventData

在以下情况下,发送一批 EventData的 非常有用:

i. 高效发送 - 发送一批 EventData 通过使用创建到 EventHubs 服务的会话数以最佳方式最大化总体吞吐量。

ii. 在一个事务中发送多个事件。 这就是为什么批处理中发送的所有事件都需要具有相同的 partitionKey (,以便仅) 发送到一个分区的原因。

ThrowIfClosed()

如果客户端对象已关闭,则引发异常。

(继承自 ClientEntity)
UnregisterPlugin(String)

取消注册 EventHubsPlugin

(继承自 ClientEntity)

适用于