복붙노트

[REDIS] 펍 / 하위에 ZeroMQ 대 레디 스 클러스터, 수평 확장 분산 시스템

REDIS

펍 / 하위에 ZeroMQ 대 레디 스 클러스터, 수평 확장 분산 시스템

더 나은 것, 그 처리량 가입자와 시스템의 채널 수의 수에 따라 선형 적으로 확장한다 거대한 분산 시스템을 설계한다면?

1) 레디 스 클러스터 ()는 레디 스 3.0 알파에 대한 그의 클러스터 모드, 당신은 하나 개의 노드에 게시 할 수 있습니다 다른 완전히 다른 노드에 가입하고, 메시지를 전파하고 도달 할 것입니다. 게시의 복잡성은 N이 가입 된 클라이언트의 수는 O (N + M), M은 시스템에 등록 된 패턴의 번호입니다 만, 언제 어떻게 IT는 레디 스 클러스터에 확장 하는가? 나는이에 대한 교육 추측에 동의합니다.

2) 그것은 또한 거기에 약간의 시간 복잡도를 가지고 있으므로 ZeroMQ는 3.x를하기 때문에, 서버 측 필터링을 수행하지만 나는 문서에서 그것에 대해 아무것도 보지 못했다. 나는 그것을 확장하고 싶었다면, 난 그냥 어떤 채널에 게시 서버를 많이 가질 수, 각 가입자는 모든 서버에 연결하는 것, 원하는 채널에 가입. 그게 좋은 것 같다.

그래서 그 어떤 거대한 게시자 시스템의 수평 확장을위한 더 나은 무엇입니까? 내가 들여다해야 다른 솔루션은 무엇인가? 나는 대기 시간 및 처리량을 최소화하려면, 기억,하지만 수평으로 확장 할 수있는.

해결법

  1. ==============================

    1.당신은 내가 생각, 대기 시간 최소화하려는. 채널의 수는 관계가 없습니다. 핵심 요소는 대략 출판사의 수와 가입자 수, 메시지 크기, 출판사 초당 메시지 수, 각 가입자가받은 메시지의 수입니다. ZeroMQ는 다른 한 노드에서 초당 수백만 개의 작은 메시지를 할 수있다; 당신의 병목 현상은 네트워크 긴이 소프트웨어의 이전 될 것입니다. 대부분의 대량 pubsub 아키텍처 그러므로 PGM 멀티 캐스트, ZeroMQ 지원 같은 것을 사용합니다.

    당신은 내가 생각, 대기 시간 최소화하려는. 채널의 수는 관계가 없습니다. 핵심 요소는 대략 출판사의 수와 가입자 수, 메시지 크기, 출판사 초당 메시지 수, 각 가입자가받은 메시지의 수입니다. ZeroMQ는 다른 한 노드에서 초당 수백만 개의 작은 메시지를 할 수있다; 당신의 병목 현상은 네트워크 긴이 소프트웨어의 이전 될 것입니다. 대부분의 대량 pubsub 아키텍처 그러므로 PGM 멀티 캐스트, ZeroMQ 지원 같은 것을 사용합니다.

  2. ==============================

    2.레디 스에서 ZeroMQ처럼, 병목 현상은 네트워크가 될 것입니다. 레디 스 적어도하지 더 ZeroMQ 이상의 경우만큼, 초당 수백만 개의 메시지를 도달 할 수 있습니다.

    레디 스에서 ZeroMQ처럼, 병목 현상은 네트워크가 될 것입니다. 레디 스 적어도하지 더 ZeroMQ 이상의 경우만큼, 초당 수백만 개의 메시지를 도달 할 수 있습니다.

    당신은 레디 스 클러스터에 분배의 현재 구현이 노드 간 버스를 사용하여 모든 클러스터 노드에 메시지를 게시 알고 있어야합니다. 이 방법은 (Github의에서이 문제에 설명 된대로) 레디 스에 매우 싼 것을 게시 가정합니다.

    그러나, 노드 간 통신이다 관련된 작은 오버 헤드가있다. 당신이 확장으로이 오버 헤드가 더 중요 할 것입니다. 채널이나 패턴이 레디 스 키가 배포되는 방식과 유사한 방식으로 클러스터 노드에 분산되어있는 - 그것은 상업 하나하시기 바랍니다 참고 - 제가 알고 다른 레디 스 클러스터 구현이있다. 적어도 공급에 따라, 노드 간 통신 및 증가 성능 오버 헤드를 저장해야하지만, 내가 직접 벤치마킹 않았다.

  3. from https://stackoverflow.com/questions/13765969/redis-cluster-vs-zeromq-in-pub-sub-for-horizontally-scaled-distributed-systems by cc-by-sa and MIT license