2016-08-08 7 views
0

현재 분산 테스트 실행 및보고 시스템에서 일하고 있습니다. Redis PUB/SUB를 메시지 대기열 및 메시지 배포 시스템으로 사용할 계획입니다.Redis PUB/SUB 및 고 가용성

저는 Redis에 익숙하지 않으므로 최대한 많은 문서를 읽으려고 노력하고 있습니다. 가장 중요한 주제 중 하나는 고 가용성입니다. 내가 말했듯이 저는 전문가는 아니지만 Sentinel, 복제, 클러스터링 등을 사용하여 가능한 옵션을 알고 있습니다.

Pub/Sub 기능과 HA 옵션 서로 관련이있다. Redis와 함께 신뢰할 수있는 메시징 시스템을 구축하는 가장 좋은 방법은 무엇입니까? 신뢰성있는 방법은 Redis 메시지 브로커가 다운되면 일종의 백업 노드 (노예가되어야합니다)가이 역할을 대신 할 수 있어야한다는 것입니다.

순전히 서버 측 솔루션이 있습니까? 또는이를 처리하기 위해 Redis 클라이언트 주위에 스마트 래퍼를 만들어야합니까? Sentinel 기반 설치가 도움이됩니까?

+0

분산 설치에서 pubsub를 사용하지 않았지만 데이터 서버로 처음부터 redis를 생각합니다. Pubsub는 위에 체리입니다. 안정적인 분산 메시지 대기열을 사용해야하는 경우 특수한 솔루션이 있습니다. RabbitMQ가 꽤 좋다고 들었습니다. –

+0

그래, 우리는 Redis를 (공유 사전으로) 사용하기 시작했습니다. 그러나 프로젝트가 형성되는 동안 메시지 기반 통신이 우리의 필요에 더 잘 맞을 수 있다는 것이 밝혀졌습니다. Redis가 거기에 있었고 지원하기 때문에 우리는 메시지 브로커로 사용하기 시작했습니다. 돌로 조각 한 것은 없지만 다른 솔루션도 확인합니다. – user2519450

답변

3

장애 조치가있는 Redis의 pub sub를 수행한다는 것은 클라이언트 측의 추가 요소에 대해 생각한다는 의미입니다. 이해해야 할 주요 사항은 구독이 연결 단위라는 것입니다. 노드의 채널을 구독하고 있는데 실패하면 다시 연결하고 다시 구독해야합니다. 구독은 연결 수준에서 완료되기 때문에 복제 할 수있는 것이 아닙니다. 로 작동하고 당신은 노예에 가입하여 위험 표면을 낮출 수 https://objectrocket.com/blog/how-to/reliable-pubsub-and-blocking-commands-during-redis-failovers

에 내가 올해 초에 만든 게시물을 참조 주위 방법과 함께 볼 것으로 예상 할 수있는 방법에 대한 세부 사항에 대해서는

마스터에게 퍼블리싱을 할 수는 있지만 구독하기 위해서는 승격 할 수없는 노예가 있어야하고 노예를 잃는 것을 처리해야합니다. 주인이있는만큼 주어진 노예를 잃을 수있는 기회가 있습니다.

+0

감사합니다. 사진이 더 분명 해졌습니다. 귀하의 blogpost는 초심자를위한 쉬운 읽기가 아니지만 확실히 말하고 있습니다. – user2519450

1

이 IMO, PUB/SUB 좋은 선택이 아니다, disque을 할 수있다 (antirez에서 유래의 레디 스의 저자) 잘 맞는 :

Disque, 인 - 메모리 분산 작업 대기열

+0

고마워, 내가 확인해 볼게. – user2519450