具有订户JMS选择器的ActiveMQ

时间:2017-12-12 00:36:47

标签: jms activemq jms-queue

我试图将当前的RabbitMQ实现移植到ActiveMQ(由于我无法控制的几个原因)。我正在尝试设计与当前RabbitMQ设计相同的数据流。

在我们当前的设计中,我们在RabbitMQ中创建一个主题,然后消费者(玩家)创建他们的队列并使用键绑定(格式为player-[id]-[up/down])绑定到主题。因此,您最终得到一个名为GamePoints的主题和数千个队列(每个玩家一个)绑定到该主题,其中键等于玩家ID。我们现在可以使用GamePoints的密钥向player-1234-up主题生成消息,并且具有该ID的玩家将收到该消息。这很有效。这也允许我们创建像player-1234-*这样的键绑定,并接收发往该播放器的所有消息。

我是ActiveMQ的新手,并试图模仿这种行为。到目前为止,我已经提出以下建议:

  • 我们创建了一个名为GamePoints
  • 的主题
  • 每个玩家在连接时,都会使用playerId=1234
  • 的JMS选择器为主题创建订阅者
  • 当游戏生成消息时,会将其发送到GamePoints主题,PlayerId标题值为1234
  • 具有JMS选择器的订户(只要当时处于活动状态)将收到此消息,其他订户将不会收到该消息
  • 我们还可以使用playerId like '1234-%'
  • 等选择器创建订阅者

这是一个好模式吗?我担心这不会缩放,因为在我拥有数十万订阅者的情况下,它必须为每条消息运行JMS选择器数十万

感谢您的帮助!

0 个答案:

没有答案