AMQPトピックを使用することで、目的を達成できるはずです。routingKeyを「my-topic」などに設定します。「subject-1」、「subject-2」など、設計どおりにさまざまなサブジェクトにコンシューマーを設定します。
プロデューサーの場合、それぞれが「my-topic.subject-1」、「my-topic.subject-2」など、さまざまな件名のメッセージを送信できます。これらをプロデューサーのroutingKeyとして使用します。
サンプルコードは次のようになります。
//set up message consumer for "subject-1"
AMQTopic topic-1 = new AMQTopic(new AMQShortString("amq.topic"), new AMQShortString("my-topic.subject-1), false, null, true);
MessageConsumer consumer = session.createConsumer(topic-1);
Message message = consumer.receive();
...
//set up message producer for "subject-1"
MessageProducer producer = session.createProducer(topic-1);
producer.send(session.createTextMessage("my message"));
このようにして、ルーティングキーとして「my-topic。*」を使用して、「my-topic」に送信されるすべてのメッセージを受信するようにコンシューマーを設定することもできます。詳細については、Qpidのドキュメント「Programming-In-Apache-Qpid」を参照してください。