Multi-Tenancy auf Datenbankebene zu implementieren: Eine Möglichkeit, Daten für mehrere Clients zu trennen ist, einzelne Datenbanken pro Mieter zu haben.Wie Multi-Tenancy in Mongo db mit Morphium
Antwort
Angenommen, Sie auf Webservice oder Web-Anwendung arbeiten.
Ein Client sendet die Mandanten-ID als Header-Parameter.
schreibt einen Filter und die Mieter Details aus dem Cache von Mieter-ID erhalten.
die Schemanamen in den zum Beispiel Filter Set:
MDC.put(Constants.MONGO_TENANT_DB, "uat");
MongoMultiTenancyInterceptor wird vor jedem DB-Betrieb/orm Aufruf aufgerufen. Zeichenfolge mandantDBName = MDC.get (Constants.MONGO_TENANT_DB);
LOG.info("Switching to database: "+tenantDBName); if(StringUtils.isNotBlank(tenantDBName)){ MultitenantDatastoreFactory.setDatabaseNameForCurrentThread(tenantDBName); } Setting the Database name for current Thread.
MultitenantDatastoreFactory: Erstellen Sie Datenspeicher Instanz pro Mieter Schema und speichern in HashMap.
MultitenantDatastoreFactory.getDS(): Gibt den Datenspeicher aus der HashMap von Schemanamen
UserRepository: Es Objekt Datastor erhalten wird aus der Factory-Methode und führen Sie eine beliebige Operation DB.
ich mein Projekt in GitHub hochgeladen haben, können Sie den Code von Github herunterladen