2013-05-30 1 views
1

일주일에 한 번 RabbitMQ 서버가 새로운 연결을 허용하지 않습니다. 우리는 이것이 오래된 연결이 서버 측에서 제대로 닫히지 않았기 때문이라고 발견했습니다. 클라이언트 측에서 연결을 닫지 만 RabbitMQ Management Studio (웹 인터페이스)에서는 수천 개의 연결을보고합니다.RabbitMQ가 연결 서버 측을 닫지 않습니다.

왜 자동으로 연결이 닫히지 않습니까? 구성 설정이 누락 되었습니까? 클라이언트 측에서 연결을 삭제하는 방법 때문입니까?

+0

클라이언트 측에서 연결을 제대로 닫지 않아 서버 측에서 열리고 유휴 상태가되므로 관리 플러그인을 통해 수동으로 닫아야합니다. – robthewolf

+0

예. 감사합니다. 나는 그걸 가지고 놀았고 내 문제에 대한 깔끔한 해결책을 찾았습니다! – Molibar

답변

3

연결 클라이언트 쪽이 제대로 닫히지 않으면 연결 서버 쪽이 절대로 닫히지 않습니다. RabbitMQ에서 사용하는 AMQP (Advanced Message Queuing Protocol)는 장시간 실행되는 작업을 위해 연결이 열린 상태로 유지되도록합니다.

내 문제의 이유는 물론 연결이 제대로 닫히지 않았기 때문입니다. 내 솔루션은 연결 팩터 리에서 소멸자를 수정하는 것이 었습니다. 또한 연결 팩토리를 새 연결 팩토리를 만드는 대신 단일 연결로 제공하도록했습니다. 또한 모델 (채널) 풀을 만들었습니다. 이 방법으로 하나 이상의 연결을 만들 필요가 없으며 모델 풀 덕분에 성능이 크게 향상되었습니다.

관련 문제