표지만 보고 책을 판단할 수는 없지만, 토폴로지를 보고 분산 시스템의 아키텍처를 판단할 수는 있습니다.
두 분산 시스템이 똑같이 효과적이라면 토폴로지가 더 단순한 시스템이 더 나은 아키텍처를 가진 시스템일까요? 이 글에서는 두 개의 문서 데이터베이스와 두 개의 와이드 컬럼 저장소의 아키텍처를 토폴로지를 살펴봄으로써 비교합니다.
와이드 컬럼 스토어
토폴로지 #1
와우. 여기에는 많은 일이 일어나고 있습니다. 네 가지 노드 유형과 노드당 여러 컴포넌트가 있습니다.
토폴로지 #2
Nice. 간단합니다. 노드 유형은 하나뿐입니다.
어떤 와이드 컬럼 스토어를 선택하시겠습니까?
- 어느 쪽이 더 배포하기 쉬울까요?
- 어느 쪽이 유지 관리가 더 쉬울까요?
- 어느 쪽이 더 확장하기 쉬울까요?
- 어느 쪽이 더 탄력적일까요?
움직이는 부분이 적을수록 좋다고 생각합니다.
Apache HBase
Apache HBase는 Apache Hadoop 위에 위치하므로 많은 노드 유형과 구성 요소가 있습니다. Apache Hadoop에는 HDFS용 네임 노드와 데이터 노드가 필요합니다. 매핑/축소를 위해 작업 추적기와 작업 추적기가 필요합니다. Apache HBase에는 마스터 서버, 리전 서버, Zookeeper 클러스터가 필요합니다. Apache HBase, HDFS 및 맵/축소 구성 요소를 함께 배치할 수 있습니다. 그러나 반드시 그럴 필요는 없습니다.
마스터 서버와 네임 노드는 단일 장애 지점이 될 수 있습니다. 그러나 여러 마스터 서버와 마찬가지로 여러 네임 노드를 배포할 수 있습니다. 즉, 네임 노드를 사용할 수 없거나 마스터 서버를 사용할 수 없거나 Zookeeper 클러스터를 사용할 수 없는 경우 문제가 발생할 수 있습니다.
아파치 카산드라
노드 유형은 하나뿐입니다. 그게 전부입니다. 클라이언트는 노드와 직접 통신합니다. 단일 장애 지점이 없습니다. 독립 노드나 별도의 클러스터에 대한 종속성이 없습니다.
문서 데이터베이스
토폴로지 #1
와우. 여기에는 많은 일이 일어나고 있습니다. 네 가지 노드 유형과 두 가지 논리적 그룹화 계층이 있습니다.
토폴로지 #2
Nice. 간단합니다. 노드 유형은 하나뿐입니다.
어떤 문서 데이터베이스를 선택하시겠습니까?
- 어느 쪽이 더 배포하기 쉬울까요?
- 어느 쪽이 유지 관리가 더 쉬울까요?
- 어느 쪽이 더 확장하기 쉬울까요?
- 어느 쪽이 더 탄력적일까요?
움직이는 부분이 적을수록 좋다고 생각합니다.
MongoDB
몽고DB 토폴로지는 아파치 HBase 토폴로지와 유사합니다. 차이점은 클라이언트가 노드에 직접 연결하지 않는다는 것입니다. 클라이언트 요청은 라우터 노드에 의해 프록시됩니다. 라우터 노드는 구성 노드에서 샤드 정보를 검색합니다. 샤드는 복제본 세트로 구성됩니다. 복제본 세트는 여러 노드와 중재자로 구성됩니다.
Apache HBase와 마찬가지로 라우터 노드와 설정 노드는 단일 장애 지점일 수 있습니다. 그러나 Apache HBase와 마찬가지로 여러 라우터 노드와 여러 구성 노드를 배포할 수 있습니다. 즉, 라우터 노드 및/또는 구성 노드를 사용할 수 없는 경우 문제가 발생할 수 있습니다.
카우치베이스 서버
노드 유형은 하나뿐입니다. 그게 전부입니다. 클라이언트는 노드와 직접 통신합니다. 단일 장애 지점이 없습니다. 독립 노드나 별도의 클러스터에 대한 종속성이 없습니다.
요약
훌륭한 아키텍처는 유연성과 단순성의 균형을 유지합니다. 모듈형 아키텍처에는 가치가 있습니다. 단순한 아키텍처에도 가치가 있습니다. 그러나 모듈성이 분산 시스템의 토폴로지에 반영될 필요는 없습니다. Couchbase Server는 모듈식 분산 시스템입니다. 단일 인스턴스는 여러 구성 요소와 여러 서비스로 구성되어 있습니다. 그러나 모듈성은 관리자에게 강제되지 않습니다. 이는 배포가 아니라 분산 시스템 자체의 한 측면입니다.
잘 쓰셨어요! 매우 효과적입니다.
[...] Couchbase Server는 최고의 성능을 제공할 뿐만 아니라 확장하기 쉽고(링크) 일관성이 있습니다 [...].