0

표준 배포 모델에서 모두 동일한 시스템에 있지만 네트워크를 통해 서로 대화하는 여러 이기종 서비스로 구성된 시스템을 구축하고 있습니다. 복잡한 시스템 내에서 엔티티를 관리하기위한 UI 클라이언트는 모든 포함 된 서비스의 집계 된 데이터를 표시하면서 집계 된 데이터를 통한 검색을 가능하게해야합니다.데이터 검색 및 여러 서비스 간 검색

검색 할 데이터의 양이 이미 많아지고 커질수록 확장이 가능하도록이 시스템에서 데이터 검색을 설계하는 방법을 알고 싶습니다. 주문에 따라 모든 서비스에서

  1. 클라이언트 쿼리 데이터를하고 레이어의 결과를 집계 :

    나는 두 가지 방법에 대해 생각하고 있어요. 많은 경우 여러 서비스에서 오는 데이터를 조인해야하므로 여기서 성능에 관심이 있습니다.

  2. 클라이언트가 쿼리 할 때 편리하고 여러 서비스 데이터간에 집계를 저장하여 클라이언트가 필요에 따라 조인 할 필요가 없도록 서비스 데이터를 비정규 화합니다. 아마도 각 서비스의 비정규 화 된 데이터를 자체 데이터베이스 또는 캐시에 저장하는 것이 더 좋을 것입니다. 따라서 모든 비정규 화 된 데이터를 최신 상태로 유지하는 것이 더 쉬울 것입니다. 그러나 여러 사이트의 여러 서비스 데이터에 집계 된 뷰를 배치해야하며이 원격 캐시를 최신 상태로 유지하는 데 대한 오버 헤드가 염려됩니다.

유사한 문제를 해결하는 기존 아키텍처에 대한 모든 예제 또는 참조는 높이 평가할 수 있습니다. 감사!

답변

0

캐시를 집계하면 성능은 향상되지만 비용은 신중하게 고려해야합니다 (동기화). 클라이언트 (또는 클라이언트에 대해이 작업을 수행 할 일부 원격 서비스)가 서비스 데이터와 동기화되는 자체 데이터베이스 (자체 데이터베이스 비동기 끌어 오기 복제 구현과 같은)를 갖게됩니다. 서비스에서 검색된 데이터가 어떻게 바뀔 수 있는지 확인하십시오. 데이터가 삭제/수정되지 않고 새로운 데이터 만 추가 될 수 있다면 가장 좋습니다. 데이터가 일관성을 유지할 필요가 없다면 더 쉽습니다. 적절한 동기화 메커니즘을 선택하는 것은 기존 아키텍처 및 요구 사항에 따라 다릅니다.