[java] ActiveMQ와 RabbitMQ의 메시지 보관 기간 설정

목차


ActiveMQ의 메시지 보관 기간 설정

ActiveMQ는 메시지를 모유로서 보관하는 기능을 제공합니다. 이 기능을 사용하면 메시지를 일정 기간 동안 보관하고, 해당 기간이 지난 메시지를 삭제할 수 있습니다.

메시지 보관 기간 설정 방법

  1. conf/activemq.xml 파일을 엽니다.
  2. <broker> 태그 안에 다음과 같은 설정을 추가합니다.
<broker>
    ...
    <persistenceAdapter>
        <kahaDB directory="${activemq.data}/kahadb" ...>
            ...
            <indexCacheSize>10000</indexCacheSize>
            <journalMaxFileLength>1024 * 20</journalMaxFileLength>
            <checkpointInterval>5000</checkpointInterval>
            <cleanupInterval>30000</cleanupInterval>
            <gcInterval>60000</gcInterval>
        </kahaDB>
    </persistenceAdapter>
    ...
</broker>
  1. 위의 설정에서 cleanupInterval을 원하는 값으로 설정합니다. 이 값은 메시지가 보관되는 시간 간격을 의미하며, 밀리초 단위로 설정됩니다. 예를 들어, 30000을 설정하면 30초마다 메시지가 삭제됩니다.

  2. ActiveMQ를 재시작합니다.

주의사항


RabbitMQ의 메시지 보관 기간 설정

RabbitMQ는 메시지를 Queue에 보관하는 기능을 제공합니다. 메시지 보관 기간을 설정하면 지정된 기간이 지나면 메시지가 삭제되며, 해당 메시지를 수신할 수 없게 됩니다.

메시지 보관 기간 설정 방법

  1. RabbitMQ 관리자 화면에 로그인합니다.
  2. “Queues” 메뉴로 이동하여 메시지 보관 설정을 변경할 Queue를 선택합니다.
  3. 선택한 Queue의 “Expiry” 항목을 원하는 값으로 설정합니다. 이 값은 메시지의 유효기간을 나타내며, 밀리초 단위로 설정됩니다. 예를 들어, 60000을 설정하면 1분 경과 후에 메시지가 삭제됩니다.

  4. 설정을 저장하고 RabbitMQ를 재시작합니다.

주의사항


위의 예제에서는 ActiveMQ와 RabbitMQ에서의 메시지 보관 기간 설정 방법을 소개하였습니다. 각각의 환경에 맞게 설정 값을 조정하여 메시지 보관 기간을 적절하게 관리할 수 있습니다. 자세한 내용은 해당 메시지 브로커의 공식 문서를 참조하시기 바랍니다.