私はJavaクライアントでヘッダー交換を実装しようとしている初心者です。これが「x-match」バインディング引数の目的であることを認識しています。「x-match」引数が「any」に設定されている場合、一致するヘッダー値は 1 つだけで十分です。または、「x-match」を「all」に設定すると、すべての値が一致する必要があります。しかし、理解を深めるためにスケルトンコードを提供してくれる人はいますか。
9383 次
1 に答える
24
ヘッダー交換を使用するには、交換をヘッダー タイプとして宣言するだけです。
channel.exchangeDeclare("myExchange", "headers", true);
次に、コンシューマーがメッセージを消費する前に、メッセージの最終的な宛先となるキューを宣言する必要があります。
channel.queueDeclare("myQueue", true, false, false, null);
ここで、バインディングを宣言して交換をキューにバインドする必要があります。この宣言では、交換からキューにメッセージをルーティングするために必要なヘッダーを設定します。例は次のとおりです。
Map<String, Object> bindingArgs = new HashMap<String, Object>();
bindingArgs.put("x-match", "any"); //any or all
bindingArgs.put("headerName#1", "headerValue#1");
bindingArgs.put("headerName#2", "headerValue#2");
...
channel.queueBind("myQueue", "myExchange", "", bindingArgs);
...
これにより、headerName#1 と headerName#2 を使用してバインディングが作成されます。これが役立つことを願っています!
于 2013-10-23T06:41:40.770 に答える