我是 Active MQ 的新手。我想知道在 Active MQ(或 Apollo)中是否可以进行以下操作。
本质上,我有一个进程会生成消息以启用或禁用特定站点。当消息(启用/禁用)发送到 ActiveMQ 时,该消息可能有多个消费者,具体取决于消息的路由键。例如,如果消息是启用站点 A,则路由键将是 site.A.enable。并且正在监视其站点 A 队列的站点 A 将收到此消息以及监视所有启用/禁用消息的系统范围的处理器。
现在,我认为这在 Active MQ 中使用主题是可行的。SiteA 将订阅 的所有主题,site.A.*
系统进程将订阅 和 的所有site.*.enable
主题site.*.disable
。 这是在 ActiveMQ 中做到这一点的最佳方式吗?
我还想确保 siteA 不能订阅site.B.*
或site.C.*
主题。他们只能接收来自 的消息site.A.*
。并且系统进程可以访问所有site.*.*
主题。我也认为这可以通过安全插件来完成。我只需更新配置文件并为每个站点主题指定读/写/管理访问权限,并将其连接到用户/通行证或 ldap 以识别正在连接的站点。 那是对的吗?如果站点是外部的,这会起作用吗?
我希望能够以最少的配置/设置添加新站点。当 siteX 上线时,发布者代码将像所有其他的一样发布消息,除了它将是在site.X.*
发布第一条消息时动态创建的主题。消费者也可以从site.X
动态开始消费。
这就是我的问题所在。如何添加站点 X 只能“动态”访问 site.X 主题的安全性? 我想我必须编辑配置文件并为新站点添加安全内容。然后我将不得不停止/启动服务器以获取新设置。我也许可以编辑服务器上的配置,但我认为我们不能在每次添加新站点时都停止/启动。
有没有更好的方法来实现这一点?
谢谢!