7.10. 안티 패턴 방지
연결, 세션, 소비자 및 생산자를 가능한 경우 재사용합니다.
가장 일반적인 메시징 안티 패턴은 전송 또는 소비되는 모든 메시지에 대해 새로운 연결, 세션 및 생산자를 생성하는 것입니다. 이러한 오브젝트는 생성하는데 시간이 걸리며 여러 네트워크 라운드트립이 포함될 수 있으므로 리소스를 사용하지 못할 수 있습니다. 항상 재사용하십시오.
Spring Messaging 템플릿과 같은 일부 널리 사용되는 라이브러리는 이러한 패턴을 사용합니다. Spring Messaging 템플릿을 사용하는 경우 성능이 저하될 수 있습니다. Spring Messaging 템플릿은 Jakarta Messaging 세션을 캐시하는 애플리케이션 서버에서만 사용할 수 있습니다(예: Jakarta Connectors 사용), 메시지 전송에만 사용할 수 있습니다. 애플리케이션 서버에서도 동기적으로 사용하는 메시지에 안전하게 사용할 수 없습니다.
fat message를 피하십시오.
XML과 같은 상세 형식은 유선에 많은 공간을 차지하며 결과적으로 성능이 저하됩니다. 가능한 경우 메시지 본문에서 XML을 방지할 수 있습니다.
각 요청에 대해 임시 큐를 생성하지 마십시오.
이러한 일반적인 안티 패턴에는 임시 큐 요청 응답 패턴이 포함됩니다. 임시 큐 요청-응답 패턴을 사용하면 메시지가 대상으로 전송되고 응답 헤더가 로컬 임시 큐의 주소로 설정됩니다. 수신자가 메시지를 수신하면 이를 처리한 다음 reply-to 헤더에 지정된 주소로 응답을 보냅니다. 이 패턴으로 인해 발생하는 일반적인 실수는 전송되는 각 메시지에 새 임시 큐를 생성하여 성능을 크게 줄이는 것입니다. 대신 여러 요청에 임시 큐를 재사용해야 합니다.
필요한 경우가 아니면 메시지 기반 빈을 사용하지 마십시오.
Cryostat를 사용하여 메시지를 사용하는 것은 간단한 Jakarta 메시징 메시지 소비자를 사용하여 메시지를 사용하는 것보다 느립니다.