redis 如何实现为每个用户单独(并行)逐个传递消息?

xiozqbni  于 2022-10-31  发布在  Redis
关注(0)|答案(1)|浏览(132)

我需要一个队列/消息代理,将允许我接收每个用户的1条消息。
以前我一直使用FIFO SQS,每个用户都有自己的消息组ID,这样我就可以为每个用户提供1条即时消息。x1c 0d1x
但是,当队列中的消息超过20,000条时,我遇到了一个问题,因为 * FIFO队列会检查前20,000条消息,以确定可用的消息组 *,这会使超过20,000条限制的所有消息都无法处理。
对于消息代理/队列,你们有什么建议可以让我在不限制20.000条消息的情况下实现同样的行为吗?
我在考虑使用Redis列表(每个用户都有自己的列表,我为每个现有的列表做一个RPOP

lmvvr0a8

lmvvr0a81#

解决您在ActiveMQ中描述的使用者窗口问题的两个选项:
1.使用虚拟主题并让用户注册选择器。中介会将发送给每个用户的消息过滤到它们自己的队列中。这不需要任何中介更改,并且通过客户机设置选择器完全是动态的。
1.使用组合目标将消息筛选到单独的队列。这是静态代理路由,需要更改服务器端配置以获得任何新的路由规则。不需要更改客户机
这两种方法都记录在此处:参考:https://activemq.apache.org/virtual-destinations

相关问题