【发布时间】:2020-03-12 17:42:24
【问题描述】:
我需要将错误推送到队列中并将它们显示在屏幕上。一旦用户确认错误,该消息应该从屏幕上消失,否则如果用户没有点击确认按钮,消息应该仍然在屏幕上可见,只要我们加载屏幕。所需的吞吐量并不多。因此需要基于拉的队列。关于使用哪个队列的任何建议。 RabbitMQ 还是 Kafka?
【问题讨论】:
标签: java apache-kafka rabbitmq queue
我需要将错误推送到队列中并将它们显示在屏幕上。一旦用户确认错误,该消息应该从屏幕上消失,否则如果用户没有点击确认按钮,消息应该仍然在屏幕上可见,只要我们加载屏幕。所需的吞吐量并不多。因此需要基于拉的队列。关于使用哪个队列的任何建议。 RabbitMQ 还是 Kafka?
【问题讨论】:
标签: java apache-kafka rabbitmq queue
如果您使用队列中的消息(向用户显示消息),则默认情况下它会从队列中删除(物理删除)。这不符合您需要用户先手动确认消息的要求。
如果 Kafaka Consumer 使用来自某个主题的消息,默认情况下该消息的偏移量也被确认为已处理。该消息仍然存在于主题中(直到在满足保留期后将其删除),但在每条消息被消费后偏移量会提前到下一条消息。
我认为这两种方法都不符合您的要求。您似乎需要一个包含以下信息的数据库表:
a) 表示消息是否已被确认的列
b) 用户 ID 的 FK(假设您的系统有多个用户,因此您知道哪些消息是针对哪个用户的)
【讨论】: