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!