8

私はJavaクライアントでヘッダー交換を実装しようとしている初心者です。これが「x-match」バインディング引数の目的であることを認識しています。「x-match」引数が「any」に設定されている場合、一致するヘッダー値は 1 つだけで十分です。または、「x-match」を「all」に設定すると、すべての値が一致する必要があります。しかし、理解を深めるためにスケルトンコードを提供してくれる人はいますか。

4

1 に答える 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 に答える