2016-07-20 18 views
2

Ich habe viele Artikel über einen Datenspeicher pro Mikroservice gelesen. Ich werde diesen Ansatz verwenden, möchte aber wissen, wie ich das Couchbase Sync Gateway am besten nutzen kann, da ich Sync Gateway REST API-Aufrufe sowohl von mobilen UND-Backend-Server-Apps verwenden möchte. Ich denke, dass der einfachste Weg, dies zu tun ist, einen Couchbase-Cluster (3-n Couchbase Server-Instanzen) mit vielleicht 2-3 Eimern zu haben. Ein Eimer für Sitzungen vielleicht, ein anderer für alle meine Daten und vielleicht einige andere später. Für die "Datenbank" eines jeden Mikroservices, statt unterschiedliche physische Cluster für jeden zu haben, denke ich, dass ich einfach alle Daten in einen Eimer legen und die Datenbanken und Tabellen nach Dokumentenfeldern unterscheiden sollte. Vielleicht hätte ich so etwas wie:Couchbase Microservice Architektur

{ 
    database: 'person-api' 
    doc_type: 'Person' 

    ... 
} 

Ich würde auch mehrere Datenbankeinträge für jeden Dienst alle auf den gleichen Eimer in meiner Sync-Gateway-Konfigurationsdatei. Dann müsste ich ACLs oder irgendeine Art von Kontrollen einrichten, die nur den Backend-Server-Anwendungen erlauben würde, auf ihre eigenen Datenbanken zuzugreifen (der 'Wahl-API'-Server konnte also nur Dokumente mit der entsprechenden database-Eigenschaft lesen/schreiben). Dies müsste alles über Sync Gateway geschehen, zumindest für Schreibvorgänge (ich könnte die meisten Lesevorgänge stattdessen mit den SDKs durchführen).

Sync-Gateway ist immer noch ein bisschen verwirrend für mich und ich bin mir nicht sicher, ob dies der beste Ansatz ist. Würde ich Kanäle einfach als eine Art ACL verwenden? Ist das nur ein schlechter Ansatz für den Anfang? Irgendwelche Vorschläge? Vielen Dank!

Antwort

-1

So in Sync Gateway haben Sie das Konzept der Kanäle, JSON Docs & Benutzer.

Im Mikro-Service-Modell mögen Sie wahrscheinlich Daten in verschiedene Teile trennen, wenn:

  • Sie wollen für andere
    Projekte eine bestimmte Untergruppe von Daten in der Zukunft nutzen.
  • Sie möchten vielleicht, dass diese Daten eine Synchronisierungsfunktion für einen bestimmten Zweck haben, .
  • Sie möchten die Dinge einfach zu halten und Sie möchten nicht eine sehr große und komplizierte Sync-Funktion verwalten, um alle Datentypen zu verwalten.

  • Sie haben sehr spezifische Sicherheitsbedenken. So haben Sie eine Sync-Gateway-Datenbank für öffentliche Informationen und eine zweite für sehr private/sensible Daten.