6

我正在评估 Azure 队列存储以在两个分离的应用程序之间进行通信。

我的要求是在队列消息中发送一个文件(平面文件,大小:从小到大)。

根据我在队列中读取的单个消息不能超过 64KB,因此在消息中发送可变大小的文件是不可能的。

我能想到的另一个解决方案是使用队列存储和 blob 存储的组合,即在队列消息中添加对文件的引用(在 blob 存储上),然后在需要时从 blob 中读取文件(使用参考/地址队列消息)。

我的问题是,这是一个正确的方法吗?还是有任何其他优雅的方法来实现这一目标?

谢谢,桑迪普

4

1 回答 1

5

虽然没有正确的方法,因为您可以将任何您想要的内容放入队列消息中(在大小限制内),请考虑一下:如果您的文件大小可以超过 64K,您根本无法将它们存储在队列消息中,因此您将没有除了将您的内容存储在其他地方(例如blob)之外的其他选择。对于 64K 以下的文件,您需要决定是否需要两种不同的方法来处理文件,或者只是使用 blob 作为文件源并采用一致的方法。

还要记住,消息传递会消耗带宽和处理。如果您将文件存储在队列消息中,则需要通过大量消息传递来解决此问题,并且您还需要从队列消息中提取文件内容。

还有一件事:如果您将内容存储在 blob 中,您可以使用任意数量的工具来操作这些文件,并且您的文件将永久保留在 blob 存储中(直到您明确删除它们)。队列消息必须在处理后删除,您无法保留文件。这可能是需要考虑的一个重要方面。

于 2015-06-22T12:07:10.883 回答