我需要向eventhub发送一些数据,但是因为尺寸太大而无法通过。有没有办法压缩数据或某些命令,这些命令会将数据分块并将其连接到事件中心? 我使用以下java代码发送:
EventData sendEvent = new EventData(payloadBytes);
EventHubClient ehClient = EventHubClient.createFromConnectionStringSync(connStr.toString());
ehClient.sendSync(sendEvent);
如果payloadBytes太大,我的选择是什么?
答案 0 :(得分:1)
另一种方法是从基本层切换到标准层,这使您可以发送最大1MB的事件。 Microsoft文档:Quotas and limits - basic vs standard tiers。
答案 1 :(得分:0)
您能描述一下您的用例以及您要发布的数据类型,它有助于找到正确的解决方案。以下是我在项目中使用的一些常用选项。
在设计需要消息代理或事件流的系统时要记住一些问题:
事件中心是为事件流而设计的,如here所述。当你有大量的活动时,它会很好地扩展。
每条消息的256KB限制比传输事件通常需要的更多,通常是基于文本的。
在我的项目中,我有两个不同的用例,当256K还不够时,我就是这样解决的:
我们需要发布我们的Monolithic系统的内部事件,以后我们的微服务可以使用它。大多数情况下消息很小但有时候它们比256K略大,修复很容易我们在发布之前压缩它们,并在接收器上解压缩它们。你可以找到一个好的样本here。
在第二种情况下,消息大于256K,压缩还不够,我所做的是先创建一个包含该内容的blob,然后通过引用该blob发布事件,然后你的事件接收器可以从blob获取内容,无论它有多大。
它应涵盖大多数用例,但如果对您没用,请让我更多地了解您的问题。