对于我们的一个应用程序,我们考虑将扫描图像放在MSMQ上,大小为10-12k,全天大约有15000张图像(150 MB)。
是否有人认为可能出现明显的性能问题? 我们是否应该采用这种方法,如果没有,还有什么建议?
我们将使用MSMQ绑定进行WCF。
感谢
答案 0 :(得分:3)
MSMQ网络有多大?如果你在150台服务器上有1500个队列,这显然是轻而易举的。但我们假设最坏的情况:单个服务器,单个旋转磁盘(即不是SSD)和持久存储的消息。每条消息需要一些IOP,并且您的消息将以每小时约2000个的速率到达。这不到每秒一个,所以你的磁盘需要1到10 IOPS。没什么大不了。但是,如果您有突发流量,则可能会遇到一些延迟问题。
邮件大小不是真正的问题。它远低于MSMQ限制,远低于目前正常的RAM大小,甚至旧的10Mbit以太网似乎也足够快。并且在这么低的消息大小下,IOPS的数量并没有真正变化。
即使是合适的设计也不重要。投入SSD可以作为快速修复,即使是30GB的小型也可以容纳200天的消息。因为它们通常被指定为1000多个完整的重写,所以在你的情况下可以增加200.000天 - 很多。
答案 1 :(得分:0)
我不知道是否会出现 - 你为什么不尝试看看?这些天150MB并不是那么多,所以也许没有问题,但通常最好先测试一下这些东西。
答案 2 :(得分:0)
MSMQ只能接受最多4兆的消息,所以是的,它应该没问题。
- 编辑
我误解了这个问题,但我的回答仍然准确。只要消息是< 4兆,一切都会很好:)重新编辑。
答案 3 :(得分:0)
MSMQ可以接受最大4megs的消息。每条消息/图像10-12k都没有问题。
Optimizing Performance in a Microsoft Message Queue Server Environment
答案 4 :(得分:0)
我宁愿将图片发布到服务器,为它创建一个guid并用过期日期标记它。
然后将消息发布到包含图像的URL / GUID的MSMQ。
图像服务器上的批处理作业会不时清除过期的图像。
否则,如果它只有12k ......如果没有一些现实世界的测试,没有人会知道。上述方法也难以实现。