1

私は Active MQ を初めて使用します。Active MQ (または Apollo) で次のことが可能かどうか疑問に思っていました。

基本的に、特定のサイトを有効または無効にするメッセージを生成するプロセスがあります。メッセージ (有効化/無効化) が ActiveMQ に送信されると、メッセージのルーティング キーに応じて、そのメッセージの複数のコンシューマーが存在する可能性があります。たとえば、サイト A を有効にするメッセージの場合、ルーティング キーは site.A.enable になります。また、サイト A キューを監視しているサイト A は、このメッセージと、すべての有効化/無効化メッセージを監視するシステム全体のプロセッサを受け取ります。

これは、トピックを使用する Active MQ で実行できると思います。SiteA は のすべてのトピックをサブスクライブしsite.A.*、システム プロセスは および のすべてのトピックをサブスクライブしsite.*.enableますsite.*.disableそれは ActiveMQ でそれを行うための最良の方法ですか?

site.B.*また、siteA がorsite.C.*トピックをサブスクライブできないことも確認したいと思います。からのメッセージのみを受信できますsite.A.*。また、システム プロセスはすべてのsite.*.*トピックにアクセスできます。これもセキュリティプラグを介して行うことができると思います。構成ファイルを更新して、各サイト トピックの読み取り/書き込み/管理アクセスを指定し、接続しているサイトを識別するユーザー/パスまたは LDAP に接続します。 あれは正しいですか?サイトが外部の場合、それは機能しますか?

最小限の構成/セットアップで新しいサイトを追加できるようにしたいと考えています。siteX がオンラインになると、パブリッシャー コードは他のすべてのメッセージと同じようにsite.X.*メッセージをパブリッシュしますが、最初のメッセージがパブリッシュされたときに動的に作成されるトピックに送信されます。site.Xまた、消費者も動的に消費を開始できます。

これが私の問題です。サイト X が site.X トピックに「動的に」しかアクセスできないというセキュリティを追加するにはどうすればよいですか? 構成ファイルを編集して、新しいサイトのセキュリティを追加する必要があると思います。そして、サーバーを停止/起動して、新しい設定を取得する必要があります。サーバー上の構成を編集できるかもしれませんが、新しいサイトを追加するたびに停止/開始できるとは思いません。

これを達成するためのより良い方法はありますか?

ありがとう!

4

1 に答える 1

1

あなたが概説したことはかなり賢明です。サイトごとに新しい ActiveMQ ユーザーを作成site.<whatever>し、承認プラグインを使用するための読み取り/書き込みおよび管理者権限を付与する必要があります。認証と承認の両方の詳細が activemq.xml にある単純なセキュリティ プラグインを使用している場合は、サイトを追加するたびに ActiveMQ を再起動する必要があります。

これを自動的に行いたい場合 (これを実際に動的に行うことはできません)、認証および承認プラグインの LDAP バージョンを使用し、サイトのアクセス時に適切な資格情報とアクセス許可を LDAP に書き込むスクリプトを用意する必要があります。インストールされています。そもそもサイトに資格情報を追加するために、おそらく何らかのスクリプト化された手順が必要になると思いますので、これは大したことではありません。ActiveMQ は再起動せずに変更を取得する必要があると確信していますが、これは自分で試したことがないため、テストする必要があります。

于 2013-07-24T09:51:33.880 に答える