【问题标题】:Why does EventHubClient.SendBatch() only support a single partition?为什么 EventHubClient.SendBatch() 只支持单个分区?
【发布时间】:2015-01-20 02:23:32
【问题描述】:

显然(基于异常)EventHubClient.SendBatchEventHubClient.SendBatchAsync 仅支持每次操作发送到单个分区。这似乎通过方法摘要“将一批事件数据发送到由 PartitionId 表示的逻辑分区”在文档中指出,该方法摘要似乎是从特定于分区的 EventHubSender.SendBatch 复制的。

让更高级别的客户端不根据需要重新批处理是否有设计考虑(与仅编写更少的代码相比)? EventHubClient 可以控制分区键散列/分布,这对于希望发送具有不同键的一批数据的 EventHubClient 调用者不可用,这些数据可能位于同一分区上。留给自己重新批处理我需要按消息数量的顺序进行调用,而不是按分区数量进行调用,小消息很容易有两个数量级的差异。

由于需要重新批处理 already,所以情况可能会更糟。

【问题讨论】:

    标签: azure-eventhub


    【解决方案1】:

    我假设批处理的 EventData 对象上的 PartitionKey 将用于分区。但显然不是。 但是,Paolo Salvatori 编写了一组很好的扩展方法,为批量发送到事件中心提供了良好且简单的支持。 你可能会喜欢他的帖子:http://blogs.msdn.com/b/paolos/archive/2015/03/26/how-to-implement-a-partitioned-sendbatch-method-for-azure-service-bus-entities.aspx

    最好的问候

    【讨论】:

    • 是的,由于stackoverflow.com/questions/27263189/…,该代码看起来与我编写的(但未共享)相似,尽管后来添加了以字节为单位的 SerializedSize。他至少明确表示批处理仅支持具有相同分区键的 EventData。
    猜你喜欢
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    相关资源
    最近更新 更多