10.4.7. vhost ポリシーの例

以下の例では、vhost ポリシーを使用してメッセージングリソースへのアクセスを承認する方法を示しています。

例10.6 メッセージングエンドポイントの基本的なリソース制限の定義

この例では、vhost ポリシーで、example.com ホストに接続するクライアントのリソース制限を定義します。

[
    ["vhost", {
        "hostname": "example.com",  1
        "maxConnectionsPerUser": 10,  2
        "allowUnknownUser": true,  3
        "groups": {
            "admin": {
                "users": ["admin1", "admin2"],  4
                "remoteHosts": ["127.0.0.1", "::1"],  5
                "sources": "*",  6
                "targets": "*"  7
            },
            "$default": {
                "remoteHosts": "*",  8
                "sources": ["news*", "sports*" "chat*"],  9
                "targets": "chat*"  10
            }
        }
    }]
]
1
この vhost ポリシーで定義されたルールは、example.com へ接続するユーザーに適用されます。
2
各ユーザーは、vhost への最大 10 の接続を開くことができます。
3
任意のユーザーはこの vhost に接続できます。admin グループの一部ではないユーザーは $default グループに割り当てられます。
4
admin1 または admin2 ユーザーが vhost に接続する場合は、admin ユーザーグループに割り当てられます。
5
admin ユーザーグループのユーザーは、ローカルホストから接続する必要があります。admin ユーザーが他のホストから接続を試みると、接続は拒否されます。
6
admin ユーザーグループのユーザーは、任意のアドレスから受信できます。
7
admin ユーザーグループのユーザーは任意のアドレスに送信できます。
8
管理者以外のユーザーは、どのホストからでも接続できるようになります。
9
管理者以外のユーザーは、newssports、または chat 接頭辞で始まるアドレスからメッセージを受信できます。
10
管理者以外のユーザーは、chat 接頭辞で始まる任意のアドレスにメッセージを送信できます。

例10.7 メモリー消費の制限

高度な vhost ポリシー属性を使用することで、ユーザー接続が消費できるシステムバッファーメモリーを制御することができます。

この例では、株式取引サイトで株式取引先責任者のサービスを提供します。ただし、サイトは high-capacity も受け入れる必要があり、株式エクスチェンジから自動データフィードも受け付ける必要があります。受信側がフィードに必要なメモリーを消費しないようにするため、通信者よりも新しいシステムバッファーメモリーはすべてフィードに割り当てられます。

この例では、maxSessions および maxSessionWindow 属性を使用して、各 AMQP セッションでバッファーメモリー消費制限を設定します。この設定は AMQP 接続およびセッションネゴシエーションに直接渡され、ルーターで処理サイクルは必要ありません。

この例では、バッファー割り当てに関係しない vhost ポリシー設定は表示されません。

[
    ["vhost", {
        "hostname": "traders.com",  1
        "groups": {
            "traders": {
                "users": ["trader1", "trader2"],  2
                "maxFrameSize": 10000,
                "maxSessionWindow": 5000000,  3
                "maxSessions": 1  4
            },
            "feeds": {
                "users": ["nyse-feed", "nasdaq-feed"],  5
                "maxFrameSize": 60000,
                "maxSessionWindow": 1200000000,  6
                "maxSessions": 3  7
            }
        }
    }]
]
1
この vhost ポリシーで定義されたルールは、traders.com へ接続するすべてのユーザーに適用されます。
2
traders グループには、trader1trader2 で定義されるその他のユーザーが含まれます。
3
最大 5,000 のデータ量として、各セッションで 5,000 のデータを処理できるようになります。
4
接続ごとに 1 つのセッションのみが許可されます。
5
feeds グループには 2 人のユーザーが含まれます。
6
大概の 1,200,000,000 バイトのデータは各セッションでフライトになります。
7
接続ごとに最大 3 つのセッションが許可されます。