12

인사말,ZooKeeper와 RabbitMQ/Qpid를 함께 사용하면 과도하거나 좋은 조합이 될까요?

다중 데이터 센터 분산 시스템의 일부 구성 요소를 평가하고 있습니다. 에이전트는 RabbitMQ 또는 Qpid를 통해 메시지 대기열을 사용하므로 에이전트는 주소 지정, 라우팅,로드 균형 조정 또는 재전송에 대한 걱정없이 다른 에이전트에 비동기 요청을 할 수 있습니다.

대부분의 경우 에이전트는 동시 액세스가 높게 설계되지 않은 구성 요소와 상호 작용하므로 경쟁 조건을 피하기 위해 잠금 및 교차 에이전트 조정이 필요합니다. 또한 시스템이 에이전트 또는 데이터 센터 오류에 자동으로 응답하도록하고 싶습니다.

위의 사용 사례를 염두에두고 ZooKeeper이 적합 할 것 같습니다. 하지만 ZK 및 메시지 대기열을 모두 사용하려고하면 잔인한 지 궁금합니다. Zookeeper가 을 수행 할 수있는 것처럼 보일 수 있습니다.은 AMQP 메시징을 사용하는 자체 클러스터 관리자가 수행 할 수 있지만 실제로 올바르게 진행 되기는 어려울 것입니다. 반면에 ZooKeeper가 메시지 대기열을 구현하는 데 사용 된 몇 가지 예를 보았지만 RabbitMQ/Qpid가 더 자연 스럽다고 생각합니다.

이 같은 조합을 사용하는 사람이 있습니까? 사전에

감사합니다,

크리스

+0

안녕하세요 Chris,이 질문에 대한 답변을 알아 냈습니까? 무슨 일로 끝났습니까? 감사합니다, 일리아 – Ilya

+0

이것은 아마도 다른 사용자를 위해 여기에 링크를 추가하여 언급 한 몇 가지 예입니다. http : //www.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/및 http://zookeeper-user.578899.n2.nabble.com/Task-Job-distribution-using-ZooKeeper -td6096815.html – dgorissen

+0

우리는 메시징을 위해 Qpid를 사용하고 ZooKeeper와 같은 분산 된 조정 서비스를 구현하지 않았습니다. 저는 여전히 ZK를 좋아합니다. 그러나 우리의 처리량은 추가 복잡성을 정당화하기에 충분하지 않습니다. MySQL이나 Redis가 뒷받침하는 단순한 데이터 센터 내부 잠금 메커니즘을 살펴볼 것입니다. 길을 따라, 우리는 동물원에 졸업 할 수도 있습니다. –

답변

4

어쩌면 그것은 약간의 사용이 될 것입니다. 가장 중요한 고려 사항은 시스템의 성능 특성입니다. 당신이 말했듯이 ZooKeeper는 분산 대기열을 사용하는 작업 분배 시스템을 구현할 수 있지만 zk는 현재 쓰기보다 읽기에 더 최적화되어 있습니다 (이것은 초당 1000 회의 ops에서 작동합니다) . 처리량 요구가 이보다 적 으면 zk를 사용하여 시스템을 구현하면 런타임 구성 요소의 수가 줄어들고 더 간단 해집니다. 물론, 결정하기 전에 항상 성능 테스트를 실행해야합니다.

분산 조정은 정말 어려워서 동물원을 사용하여 자신의 것을 압연하지 않는 것이 좋습니다.

0

사육사가 정확하게,하지만 난 어떻게 됐을까 아주 확실하지가 아파치 (그것은 당신의 요구에 맞게 않는 경우) 그런 일을 관리하기 전에 선호에서 구성 요소를 사용하여 분산 된 동기화 및 그룹 서비스로 사용할 수 있습니다. 물론 그 목적을 위해 개발자 팀을 고용 할 수는 있지만 더 나은 구현을 보장하는 것은 아닙니다.

나는 그것이 어쨌든 별도의 구성 요소로 구현 될 것이라고 생각합니다. 다른 방법은 복잡성을 높이고 워크 플로우를 감속시킬 수 있습니다. 그래서 ZooKeeper 나 그 비슷한 것들이 (나에게) 명백한 일이다.

물론 프로젝트 워크 플로우의 글로벌 최적화 단계에 있지 않으면 RabbitMQ 등을 사용하는 것이 더 낫습니다 (AMQP의 cuz 구현 (특히 상업용)은 당신이 생각해내는 모든 것보다 더 안정적입니다.)

그래서 저는 적절한 두 번째 제품을 신중하게 선택하면서 필요한만큼 많이 사용합니다. 그리고 그것은 단지 제 의견입니다; 독서를위한 감사합니다 :)

관련 문제