私はマイクロサービスアーキテクチャを持つウェブサイトを開発しており、各サービスはデータベースを所有しています。データベースは、マイクロサービスが必要とするデータを格納する。データベースをマイクロサービス(および新しいもの)と同期させるにはどうすればよいですか?
Post
、Video
サービスは、ユーザー情報が必要なので、サービスの両方がNEW_USER_EVENT
に加入。
NEW_USER_EVENT
は、新しいユーザーが登録されたときにトリガーされます。
サービスがNEW_USER_EVENT
を受信すると、彼らは自分のデータベースのそれぞれに入ってくるユーザー情報を入れます。だから彼らはUser
サービスを頼むことなく何かをすることができます。
これまでのところは良いです。しかし、ここに質問が来る:
- 私は新しいサービスを作るつもりですか?登録されたユーザー情報を取得して新しいサービスに入れるにはどうすればよいですか?
多分私は既存のサービスから情報を得ることができます。しかし、イベントはメッセージングキュー(NSQ
)によってプッシュされます。
マイクロサービスの1つからデータをコピーする場合、どのサービスに最新のユーザー情報があるかを確認するにはどうすればよいですか?
続きを読む(は、いくつかのサービスは、最新のイベントを受けていないので):
The Hardest Part About Microservices: Your Data
Intro to Microservices, Part 4: Dependencies and Data Sharing
「投稿」と「動画」などのサービスで、ユーザー作成について知る必要があるのはなぜですか?これらのサービスが聞こえなかったユーザーに関連してリクエストが到着した場合、ユーザーは存在することを検証する必要はありません。ユーザーは実際に存在しなければならないと単純に仮定することができます。ユーザー。 –
@Michaelサービスは 'username'を受け取り、' User'サービスに疎結合を要求せずに 'user_id'に変換します。新しいユーザが登録されると、サービスはそれぞれのデータベースに 'username-userId'マップを保存して、自分のサービスでそれを変換することができます。 –
私はこの問題がJWTを使って解決できることを知っていますが、私はまだユーザーが変換する必要があるだけでなく、同様のことがあります。 –