我需要一个排队系统来帮助应用程序处理不同类型的作业。工作示例是:
将来可能会有更多,但目前这是主要部分。我到处搜索消息队列的示例,但只找到有关消息队列如何工作的一般信息(Kafka、RabbitMQ 等)。
我想知道的是,因为每种类型的作业/消息(视频编码、图像调整大小等)都非常不同,并且每个作业都有不同的元信息(视频将显示编解码器、分辨率、比特率,而图像具有 JPEG 质量或透明度),它们是否被放置在不同的队列中?
或者单个队列中的每个作业都具有该作业的唯一元数据,这并不重要?
我会回答关于卡夫卡的问题,尽管我认为在这种情况下它并不那么重要,所以这并不重要。
你真的可以在一个Kafka主题中写入任何消息,因为经纪人本身并不关心,对他来说这只是一组字节。键、值和标头的序列化、反序列化和解析将由客户端处理。
这表明最好至少通过一些逻辑参数来分隔主题,在您的情况下是不同的“作业”,并且还提供某些方案,以便客户端在处理消息时更容易工作。更不用说我们如何用一个通用“队列”来扩展系统,迟早它会成为瓶颈。一般来说,消息代理的设计方式是与多个队列一起工作(在 Kafka 中具有分区和日志)。