분산형 행 기반 데이터베이스에 대한 옵션은 무엇입니까?

분산형 행 기반 데이터베이스에 대한 옵션은 무엇입니까?

(이것이 올바른 포럼이 아니라면 죄송합니다. StackOverflow도 올바른 것 같지 않습니다. 예전에는 홈페이지에 어떤 종류의 질문이 관련이 있는지 설명이 있는 줄 알았는데 지금은 찾을 수 없습니다.)

일련의 클라이언트에 대한 데이터를 처리할 여러 서버가 있습니다. 어떤 클라이언트가 어떤 서버에 연결될지, 클라이언트가 서버 간에 이동할 수 있는지 미리 알 수 없습니다. 서버가 클라이언트에 대한 최신 정보를 공유할 수 있는 방법이 필요합니다.

클라이언트 C1, C2, C3, C4와 서버 S1, S2가 있다고 가정해 보겠습니다. 서버가 시작되고 클라이언트가 C1..C4라는 것을 알고 있지만 이에 대해 아무것도 모릅니다. C1과 C2는 S1에 연결되고 S1은 이에 대한 일부 상태를 유지합니다. S1은 주기적으로 C1 및 C2의 현재 상태를 S2와 공유합니다. 어느 시점에서 C1은 S1에서 연결을 끊고 S2에 연결합니다. S2는 C1에 대해 약간 오래된 상태를 갖고 있으며 대부분 중단 없이 C1 처리를 선택할 수 있습니다.

그 동안 C3과 C4는 S2에 연결되며 거의 동일한 일이 발생합니다. S2는 C3 및 C4의 상태를 유지하고 주기적으로 S1에 이에 대해 알립니다. C3이 S1으로 이동하면 이미 약간 오래된 상태입니다.

MQTT를 고려하고 각 서버가 알고 있는 내용을 게시하고 알고 싶은 내용을 구독하도록 했지만 예상되는 데이터 양은 MQTT의 사용 사례에 잘 맞지 않습니다. (256,000개 이상의 클라이언트가 있을 수 있습니다. FWIW, 클라이언트별 데이터는 ~64바이트입니다.)

Redis가 떠올랐지만 복제가 전체 인스턴스를 마스터에서 복제본으로 복사하는 것처럼 보이고 여기에는 각 서버가 소유한(또는 마지막으로 업데이트한) 데이터의 일부가 있기 때문에 완전히 옳지 않은 것 같습니다.

Redis가 적합한 도구가 아닌 경우 선택할 수 있는 것은 무엇입니까?

티아.

관련 정보