2014-12-28 4 views
0

모에이 프레임 워크가 멀티 테넌시를 어떻게 처리합니까? Moqui의 접근 방식은 Apache OFBiz와 비슷합니까? Ofbiz는 각 임차인별로 별도의 데이터베이스를 제공합니다. Moqui는 OFBiz로부터 많은 혜택을 이어받은 강력한 프레임 워크이며 많은 개선점도 있습니다. 멀티 테넌시를 처리하는 데 개선이 있습니까? 서버 (100) 또는 그 이상의 고객에게 예상되는 모든 샘플 멀티 테넌트 응용 프로그램 (HiveMind 또는 예 응용 프로그램)모질의 멀티 테넌시

내가 (10 ~ 20 표)를 작은 데이터베이스 상호 작용이있는 웹 애플리케이션을위한 프레임 워크를 평가하고 있습니다. 별도의 세입자를위한 별도의 데이터베이스를 갖는 것은 이러한 작은 응용 프로그램을 정당화하기가 어렵습니다. Moqui와 함께 이것을 처리하기위한 권장 사항은 무엇입니까? 하나의 옵션은이 응용 프로그램 내의 모든 엔티티에 필드 이름 tenant_id를 작성하는 것이며 모든 데이터베이스 조회는 데이터베이스 조작이 수행 될 때마다이 필드에 대한 점검을 가져야합니다.

+0

Moqui와 앱 만들기는 프레임 워크의이 측면을 다루지 않습니다. 이 책 이외의 다른 문서가 있습니까? –

+0

출처와 릴리스 노트를 조사한 후, 멀티 테넌시에 대한 Moqui의 지원은 Ofbiz와 유사합니다. 즉, 다른 데이터베이스와 공유 된 응용 프로그램 서버를 의미합니다. Moqui의 도메인을 살펴보면 대기업 용 혼합 데이터베이스가 유지하기가 어려워지는 현명한 접근 방법입니다. 제 질문에 부분적으로 대답합니다. 이 부분 만 남습니다 : 매우 제한된 데이터베이스 항목 (10 - 20 개의 테이블 만)을 사용하여 대규모 고객 기반을 대상으로하는 응용 프로그램을 개발하려면 어떻게해야합니까? –

답변

1

Moqui는 OFBiz에 비해 다중 테넌트 기능에 다양한 추가 기능을 제공하지만 예 한 응용 프로그램 서버 (또는 응용 프로그램 서버 클러스터)와 세입자 당 하나의 데이터베이스 (또는 세입자 당 하나 이상의 데이터베이스)의 동일한 접근 방식을 사용합니다. 데이터베이스가 분할 됨).

실제로 단일 데이터베이스에서 많은 수의 입주자를 지원하려면 많은 도구가 필요합니다. 기본적으로 응용 프로그램 요구를 처리 할뿐만 아니라 일반적으로 데이터베이스 (예 : 다른 응용 프로그램,보고, 내보내기/마이그레이션, 필요할 때 분리 된 백업 등)를 직접 처리하는 기능을 다중 테넌트 계층에 구축해야합니다. 대규모 확장의 경우 여러 데이터베이스 서버에 걸쳐 입주자를 지원해야합니다. 즉, 적절하고 완전하게하는 것은 간단한 일이 아닙니다.

100 명의 임차인이 그렇게 나쁘지는 않습니다. 임차인 당 하나의 데이터베이스로 그렇게 할 수 있습니다. 입주자를 프로비저닝하기위한 자동화를 구축하는 것이 가장 좋으며, 이미 Moqui에있는 입주자 프로비저닝 서비스를 기반으로 할 수 있습니다. (예를 들어) 각 데이터베이스 서버를 50 또는 100 또는 모든 임차인으로 제한하려는 경우 논리를 추가하여 여러 데이터베이스 서버에 걸쳐 입주자를 "파쇄"할 수도 있습니다. 이 방법으로 수천 명의 세입자까지 확장 할 수 있지만 물론 다른 스케일링 세부 사항도 처리해야합니다.

각 엔티티에 tenantId를 추가하는 방법을 사용하거나 Entity Facade에 자동으로이 작업을 수행 할 수 있습니다 (세입자 공통 그룹의 엔티티를 제외한 모든 엔티티). 세입자를 통해보고하고 세입자 당 데이터 양이 너무 크지 않은 경우이 방법이 유용 할 수 있습니다.

사용자 지정 엔티티에만이 작업을 수행 할 수 있지만 원하는 기능에 따라이 설정을 Moqui 엔티티에 추가해야 할 수도 있습니다. 예를 들어 사용자가 다른 테넌트간에 분리되기를 원할 경우 UserAccount와 다른 보안 엔티티 (인증, 사용자 그룹, 사용 권한 등)에 tenantId를 추가해야합니다. 또한 UserAccount에 non-PK 필드로 tenantId를 추가 할 수도 있습니다 (원래 엔티티 정의를 수정하지 않으려면 extend-entity 사용). 그러면 인증 된 사용자를 기준으로 테넌트를 조회합니다 (또는 사용자가 둘 이상의 임차인에게 접근 할 수 있음).

복잡성과 가능한 변형은 무한합니다 ... 모두 당신이하고 싶은 것에 달렸습니다!

가장 가까운 개념은 맨틀 데이터 모델의 조직 파티입니다. 동일한 시스템에서 여러 조직을 지원하기 위해 여러 가지가 설계되었지만 엄격한 분리는 필요하지 않습니다. 이것은 우산 조직 내의 여러 부서 및 기타 소규모 조직을위한 것입니다.