開発日報

窓際エンジニアの開発備忘。日報は嘘です。

マイクロサービス

【マイクロサービス】サーガ概説

課題 DBが分散した状態でシステム全体としてデータ整合性どのようにして担保するのか(複数サービスにまたがったトランザクション制御どうやる)? 対策 1. 「2層コミット」を使って担保する 分散データベースに対してデータベース間の整合性を担保する方法。 …

【マイクロサービス】APIゲートウェイ概説

マイクロサービスにおける課題 クライアントからみたアクセス先のエンドポイントが複数になる。 サービスの数が増えるとアクセス先の管理、ルーティングが複雑になる 各サービスが共通で行う処理をすべてのサービスに実装すると冗長になる (店舗検索、予約…

【マイクロサービス】サービスディスカバリー概説

課題 マイクロサービスにおけるサービス内の個々のインスタンスは負荷の状況において動的に生成・破棄される。 動的に生成されるインスタンスへのルーティングはどのように行われるか? 対応 マイクロサービス群の内部にサービスディスカバリーが存在し、そ…

【マイクロサービス】サーキットブレーカー概説

課題 サービス間通信における課題として、マイクロサービス内の通信経路上の特定のAPI(サービス)が停止してしまった場合 * サービス間通信のリクエストがタイムアウトまで待たされる * 結果として、ユーザビリティが著しく低下する 対策 サーキットブレー…

【マイクロサービス】メッセージブローカー概説

マイクロサービスにおける課題 複数サービスが直列に連携されている場合、 直列に接続しているサービスのどれか1つがダウンすると、サービスとしての機能が正常に動作しなくなる 稼働率が下がる なので、直列に連携されているサービスがそれぞれ同期的何連…