RabbitMQ 대기열 선언 channel.queueDeclare () 매개변수 분석
channel.queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments)
1.queue: 대기열의 이름;
2.durable: 지속성 여부;
durable = false
시 대기열이 비지구화됩니다.대기열은 메모리에 저장되어 있기 때문에 RabbitMQ가 리셋되거나 서버가 리셋될 때 이 대기열을 잃어버립니다.durable = true
시 대기열이 지속됩니다.RabbitMQ가 재부팅되면 큐가 손실되지 않습니다.RabbitMQ가 종료되면 Erlang이 가지고 있는 Mnesia 데이터베이스에 대기열 정보를 저장하고 RabbitMQ가 다시 시작되면 이 데이터베이스를 읽습니다.3. exclusive: 배타적인지 여부;
exclusive = true
는 대기열을 배타적으로 설정한다.만약 하나의 대기열이 배타 대기열로 성명된다면, 이 대기열은 첫 번째 연결(Connection)에 대해서만 볼 수 있으며, 이 연결은 자물쇠를 채우는 것과 유사하며, 연결이 끊어질 때 자동으로 삭제됩니다.connection.close()
대기열을 비배열로 설정하면 서로 다른 연결(Connection) 파이프 채널이 이 대기열을 사용할 수 있습니다.참고 사항:
exclusive = false
.다음 성명은 문제없습니다. Channel channel = connection.createChannel();
Channel channel2 = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, true, false, null);
channel2.queueDeclare(QUEUE_NAME, false, true, false, null);
=》 connection channel channel2,
=》channel2.queueDeclare() !!!!!!
4. autoDelete: 자동 삭제 여부;만약
com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method(reply-code=405, reply-text=RESOURCE_LOCKED - cannot obtain exclusive access to locked queue 'hello-testExclusice' in vhost '/'.
모든 소비자가 이 대기열과 연결을 끊으면 이 대기열은 자동으로 삭제됩니다.주의: 이 대기열이 소비자 연결이 없을 때 이 대기열이 자동으로 삭제되는 것은 아닙니다. 생산자가 이 대기열을 성명하고 소비자 연결이 없을 때 이 대기열은 자동으로 삭제되지 않기 때문입니다.5.arguments: x-rnessage-ttl, x-expires, x-rnax-length, x-rnax-length-bytes, x-dead-letter-exchange, x-deadletter-routing-key, x-rnax-priority 등 대기열의 다른 매개 변수를 설정합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails Turbolinks를 페이지 단위로 비활성화하는 방법원래 Turobolinks란? Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고, 이동한 페이지를 Ajax에서 가져옵니다. 그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.