redis - 如何在 Apache ActiveMQ 中只获取组中的最后一条消息?

标签 redis architecture activemq message-queue messagebroker

场景: 用户正在进行长时间的测验。每次互动后,我都会将当前分数和位置存储在测验中。我只想在数据库中存储用户在当前启动期间进行的最后交互。

现在我通过 Redis 实现了这一点,每次我存储最后一次交互时我都会覆盖之前的交互。

这能否通过 Apache 的 ActiveMQ 5.x 实现,每个用户都可以将他的消息分组,而我只使用该组中收到的最后一条消息?

最佳答案

我不知道在 ActiveMQ 5.x 中有任何自动执行此操作的方法,但您可以使用 ActiveMQ Artemis 来执行此操作使用 "last value" queue .此功能允许您将消息的特殊属性设置为特定值,并且任何时候具有相同属性值的另一条消息到达队列时,它将替换前一条消息。

需要说明的是,Artemis 具有对 ActiveMQ 5.x 客户端(使用 OpenWire 协议(protocol))的向后兼容性支持。

关于redis - 如何在 Apache ActiveMQ 中只获取组中的最后一条消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53250580/

相关文章:

sql-server - 多个数据库与具有逻辑分区数据的单个数据库

ruby-on-rails - 中间件对 Twitter 和 Scala 意味着什么?

activemq - 从ActiveMQ.Agent查询返回的某些字段是什么意思?

ruby-on-rails - Redis 发布/订阅实现

python - 锁不适用于 redis-py - 未知命令 'EVALSHA'

php - Laravel 调度分布式应用程序

asp.net-mvc-3 - 用MVC构建一个大型项目软件

java - 我在哪里可以手动配置 ActiveMQ 主机名?

jvm - 端口绑定(bind)异常启动activemq

caching - Redis 搜索等于某个值的匹配键