マイクロサービスごとにデータストアを持つことに関する多くの記事を読みました。私はこのアプローチを使用しますが、モバイル アプリとバックエンド サーバー アプリの両方から Sync Gateway REST API 呼び出しを使用したいので、Couchbase Sync Gateway を使用する最善の方法を知りたいです。これを実現する最も簡単な方法は、1 つの Couchbase クラスター (3-n の Couchbase Server インスタンス) におそらく 2 ~ 3 個のバケットを使用することだと考えています。おそらくセッション用のバケット、すべてのデータ用の別のバケット、そして後で別のバケット。各マイクロサービスの「データベース」について、それぞれに異なる物理クラスターを用意するのではなく、すべてのデータを 1 つのバケットに入れ、データベースとテーブルをドキュメント フィールドで区別する必要があると考えています。だから多分私は次のようなものになるでしょう:
{
database: 'person-api'
doc_type: 'Person'
...
}
また、サービスごとに複数のデータベース エントリがあり、すべてが sync-gateway 構成ファイル内の同じバケットを指しています。次に、バックエンド サーバー アプリケーションが独自のデータベースにアクセスすることのみを許可する ACL または何らかのコントロールを設定する必要があります (したがって、「election-api」サーバーは、対応するプロパティを持つドキュメントのみを読み書きできdatabase
ます)。少なくとも書き込みの場合、これはすべて同期ゲートウェイを介する必要があります (代わりに SDK を使用してほとんどの読み取りを行う可能性があります)。
Sync Gateway はまだ少し混乱しており、これが最善のアプローチかどうかはわかりません。チャネルを一種の ACL として使用しますか? これはそもそも悪いアプローチですか?助言がありますか?ありがとう!