Redis와 RabbitMQ를 모두 평가 한 후 다음과 같은 이유로 RabbitMQ를 브로커로 선택했습니다.
- RabbitMQ를 사용하면 SSL 인증서를 사용하여 브로커에 보내는 데이터를 암호화하여 내장 된 보안 계층을 사용할 수 있으며 이는 아무도 데이터를 스니핑하고 중요한 조직 데이터에 액세스 할 수 없음을 의미합니다.
- RabbitMQ는 병목 현상없이 초당 많은 양의 이벤트와 많은 연결을 처리 할 수있는 매우 안정적인 제품입니다.
- 우리 조직에서는 이미 RabbitMQ를 사용했으며 사용에 대한 내부 지식과 요리사와의 통합을 이미 준비했습니다.
확장과 관련하여 RabbitMQ에는 중복 브로커 환경을 구현하기 위해로드 밸런서와 함께 사용할 수있는 클러스터 구현이 내장되어 있습니다.
내 RabbitMQ 클러스터가 Active Active 또는 Active Passive입니까?
이제 RabbitMQ 사용의 약점을 살펴 보겠습니다.
- 대부분의 Logstash 배송 업체는 RabbitMQ를 지원하지 않지만 반면에 Beaver라는 최고의 배송 업체는 문제없이 RabbitMQ로 데이터를 전송하는 구현을 가지고 있습니다.
- Beaver가 현재 버전에서 RabbitMQ와 함께 구현 한 것은 성능이 약간 느리고 (내 목적을 위해) 한 서버에서 초당 3000 개의 이벤트 속도를 처리 할 수 없었고 때때로 서비스가 중단되었습니다.
- 현재 RabbitMQ의 성능 문제를 해결하고 Beaver 배송 업체를보다 안정적으로 만드는 수정 작업을 진행 중입니다. 첫 번째 해결책은 동시에 실행할 수있는 프로세스를 더 추가하여 발송인에게 더 많은 전력을 제공하는 것입니다. 두 번째 해결책은 이론적으로 훨씬 빨라야하는 데이터를 RabbitMQ에 비동기 적으로 전송하도록 Beaver를 변경하는 것입니다. 이번 주 말까지 두 솔루션 모두 구현을 완료하기를 바랍니다.
여기에서 문제를 따를 수 있습니다 :
https://github.com/josegonzalez/python-beaver/issues/323
여기에서 pull 요청을 확인하십시오 :
https://github.com/josegonzalez/python-beaver/pull/324
더 많은 질문이 있으면 의견을 남겨주세요.