15.3. 주석에서 속성을 기반으로 AMQP 메시지 필터링

브로커가 만료된 또는 배달되지 않은 AMQP 메시지를 구성한 만료 또는 dead letter 큐로 이동하기 전에 브로커는 주석 및 속성을 메시지에 적용합니다. 클라이언트는 만료 또는 배달 못 한 큐에서 사용할 특정 메시지를 선택하기 위해 속성 또는 주석을 기반으로 필터를 생성할 수 있습니다.

참고

브로커가 적용되는 속성은 내부 속성입니다 These properties are not exposed to clients for regular use, but can be specified by a client in a filter.

다음은 메시지 속성 및 주석을 기반으로 하는 필터의 예입니다. 속성을 기반으로 하는 필터링은 가능한 경우 브로커의 처리가 더 적기 때문에 권장되는 접근 방식입니다.

메시지 속성에 따라 필터링합니다.

ConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:5672");
Connection connection = factory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
connection.start();
javax.jms.Queue queue = session.createQueue("my_DLQ");
MessageConsumer consumer = session.createConsumer(queue, "_AMQ_ORIG_ADDRESS='original_address_name'");
Message message = consumer.receive();

메시지 주석에 따라 필터링

ConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:5672");
Connection connection = factory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
connection.start();
javax.jms.Queue queue = session.createQueue("my_DLQ");
MessageConsumer consumer = session.createConsumer(queue, "\"m.x-opt-ORIG-ADDRESS\"='original_address_name'");
Message message = consumer.receive();

참고

주석에 따라 AMQP 메시지를 사용하는 경우 클라이언트는 위 예제와 같이 메시지 주석에 m. 접두사를 추가해야 합니다.

추가 리소스