过去,我使用消息队列来处理需求高峰。这个系统工作正常,除了记录目的。我将成功处理的消息写入数据库以进行报告和记录。这让我想知道为什么我不从一开始就将消息写入数据库,而是让我的“工作角色”轮询数据库,而不是消息队列。
我猜这不是最好的设计,因为随着数据库的增长,轮询一个巨大的数据库只是为了寻找一个“未经检查”的记录来处理会变得非常慢,而如果我立即请求,消息队列只会给我一个.
我错过了什么吗?还有其他理由选择消息队列而不是轮询数据库吗?我很乐意为用户提供查看尚未处理的内容(浮动在队列中)的能力,但是该操作比在数据库上运行查询花费的时间要长得多,因此这似乎是一种权衡。
感谢您的任何意见。