13.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.
접두사를 추가해야 합니다.
추가 리소스
- 브로커가 만료된 또는 배달되지 않은 AMQP 메시지에 적용되는 주석 및 속성에 대한 자세한 내용은 4.14절. “만료된 또는 배달되지 않은 AMQP 메시지의 주석 및 속성” 을 참조하십시오.