2017-05-09 12 views
-1

私が知っているように、RESTアーキテクチャは、クライアントからのリクエストを受信する「フロントエンド」と、実際の「バックエンド」であるサービスと、サービスに格納されたすべてのビジネスロジックとデータ(まったく同じアプリケーション、複数のサーバーで同時に実行されます)。すべてのサービスに独自のデータストレージがある場合、データの同期方法は?RESTサービス間のデータ同期

答えて

0

各サービスにはデータセットがあり、異なる方法で同期を確立できます。以下の例をご覧ください。

サービスA - 製品 - ProductDB

サービスB - ユーザー - USERDB

ユーザーは、これがその共通のプロセスになります(たとえば)黒い毛を持つユーザーのためのすべての製品を取得したい場合システムフォローします:

1)ゲートウェイ

2でクライアントからのリクエストを受信)は、ユーザーのサービスと黒の毛を持つユーザーに移動します。

select * from users where hair_color='black'

3)次に、ユーザサービスは、製品のサービスにユーザーIDを送信します。したがって、プロダクトサービスは次のクエリを実行します。

select * from product where user_id IN $(userIds)

4)最後に、製品には、クライアントに返します。

ゲートウェイhttps://www.nginx.com/blog/building-microservices-using-an-api-gateway/

+0

についてお読みくださいは、応答をありがとう、それは私が意味するものはかなりものではないのです。ゲートウェイを使用していても、サービスAのインスタンスが複数あり、それぞれが独自のデータベースを持ち、そのうちの1つがデータを変更した場合、他のサーバーのサービスAの他のインスタンスがデータベースを同期する方法は?そのためのライブラリがありますか?これは手動で行う必要がありますか? – krund

+0

すべてのサービスAは同じデータベースを探します!!!!!!!!サービスBはデータベースにサービスを提供することはできません。マイクロサービスアーキテクチャの設計についてお読みください。 – cpap

+0

私はすでに答えを見つけました。 http://realscale.cloud66.com/database-server-scaling-strategies/各アプリケーションの複数のデータベースですが、これらは読み取り専用です(#1読み取りレプリカ) – krund

関連する問題