我正在使用Azure 事件中心。我计划发送事件并使用SendBatchAsync。我看到事件中心的限制为256KB (无论是单独发送还是批量发送)
那么,如果我的数据 > 256KB ,处理此问题的最佳实践是什么?我们是否应该单独发送消息(这将保证消息小于 256KB)?
另外,如何将事件拆分为 256KB 块并将其发送到事件中心?我查看了 Azure 文档,发现他们建议使用EventHubClient.CreateBatch,但我没有看到足够的示例。有人可以提供一些模型或示例或步骤,以了解我们如何最终拆分为 256KB 和 SendBatchAsync
这是我所做的(但不考虑 256KB 限制)
await myEventHubClient.SendBatchAsync(
events.Select(
iEvent =>
new EventData(
Encoding.UTF8.GetBytes(JsonConvert.SerializeObject( iEvent ) ) ) ) );
Run Code Online (Sandbox Code Playgroud) 我已经设置了Azure Event Hub。有2个发布者:
发布者1(带有发送策略)
Publisher 2(带有发送策略)
发布者1将发送事件1,发布者2将发送事件2。事件1和事件2的格式都不同。
问题1:这意味着我们在EH中会有不同的信息-这种方法的权衡是什么?我是否应该创建2个EH(一个用于Publisher 1,另一个用于Publisher 2)?最佳实践和设计理念是什么?
如果我采用上述方法,则必须设置一个带有“ 监听”策略的使用者来查找这些事件,然后解析/转换这些事件并对其进行反序列化。
问题2:我是否需要2个使用者(消费者1和使用者2)来阅读为他们准备的消息?(消费者1将仅读取事件1,而消费者2将仅读取事件2)?