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
- 管理者以外のユーザーは、
news
、sports
、または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
グループには、trader1
、trader2
で定義されるその他のユーザーが含まれます。- 3
- 最大 5,000 のデータ量として、各セッションで 5,000 のデータを処理できるようになります。
- 4
- 接続ごとに 1 つのセッションのみが許可されます。
- 5
feeds
グループには 2 人のユーザーが含まれます。- 6
- 大概の 1,200,000,000 バイトのデータは各セッションでフライトになります。
- 7
- 接続ごとに最大 3 つのセッションが許可されます。