【发布时间】:2013-07-23 05:00:54
【问题描述】:
我是 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 主题的安全性?我想我必须编辑配置文件并为新站点添加安全性内容。然后我将不得不停止/启动服务器以获取新设置。我也许可以编辑服务器上的配置,但我认为我们不能在每次添加新站点时都停止/启动。
有没有更好的方法来做到这一点?
谢谢!
【问题讨论】: