Spring Bootによるサービスディスカバリと登録の実装

サービスディスカバリの基本概念 分散システムにおけるサービスディスカバリは、動的なサービス位置特定と通信を実現する基盤技術です。Eurekaはこの機能を提供するオープンソースツールであり、サービス登録センターとして機能します。 Eurekaサーバの構築 依存関係の追加 <dependency> <groupId>org.springframework.cloud</groupId> <ar ...

6月16日 16:28 投稿

Spring Cloud Ribbon によるクライアントサイドロードバランシングの実装手法

Ribbon と Eureka の連携概要 Ribbon は Netflix が公開したクライアントサイドのロードバランシングライブラリであり、HTTP や TCP クライアントの通信制御を支援します。サービスプロバイダーのアドレスを設定することで、定義されたアルゴリズムに基づき、サービスコンシューマーが自動的に適切なインスタンスへリクエストを送信できるようになります。標準ではラウンド ...

6月15日 16:45 投稿

Spring Cloud Eurekaを利用したマイクロサービス間連携:クライアント側のサービス呼び出し実装

マイクロサービスアーキテクチャにおけるサービス間通信は、REST形式のHTTPリクエストが一般的ですが、リモートプロシージャコール(RPC)も基盤となる重要な手法の一つです。 RPCとHTTP通信の技術的差異 RPC(Remote Procedure Call)は、ネットワークを介して離れたホスト上のプログラムを、ローカルのメソッド呼び出しのように透明に実行するためのプロトコル群です。R ...

6月5日 16:00 投稿

Spring Cloud Gateway の内部構造を一文で理解する

序論 こんにちは、しばらくぶりです。数ヶ月間お休みしていたのですが、小年(旧正月)に再び戻ってきました! 最近のプロジェクトではアーキテクチャの最適化が必要となり、あるビジネスモジュールが急速に成長しているため、それを独立したサービスとして切り出すことを検討しています。 以前にもサービス分割に関する記事を書いたことがあります:「毎日Architectureを ...

6月1日 21:20 投稿

Spring CloudにおけるRibbonの負荷分散メカニズムと設定最適化

リクエストの処理フローと分散機構 コンシューマー側アプリケーションがダウンストリームAPIへ呼び出しを行う際、Ribbonがクライアントサイドの負荷分散として介入します。標準的なデータフローは以下の順序で進行します。 呼び出し元(例:注文処理サービス)がHTTPリクエストを発行し、Ribbonクライアントレイヤーで補足されます。 Ribbonがサービスレジストリ(Eur ...

6月1日 20:30 投稿

Spring Cloud環境でのAPIゲートウェイ実装:Zuulによるリクエスト転送とルーティング設定

APIゲートウェイの役割とZuulの概要 マイクロサービスアーキテクチャにおいて、外部クライアントからのリクエストを一元管理するための中間層としてAPIゲートウェイが利用されます。Netflix社が提供しているZuulは、Servlet仕様準拠のWebアプリケーションとして動作し、動的ルーティング、フィルタリング、モニタリング、およびセキュリティ検査を実装するための基盤フレー ...

5月24日 18:24 投稿

Spring Cloud Config Serverのサービス化と高可用性実装

これまでの実装内容を振り返ります: Gitリポジトリ連携したconfig-server-gitの構築 Gitee上でのconfig-repoディレクトリ作成(設定情報保存用) Git設定情報取得用config-clientの構築 config-clientでのRefresh機能による動的設定更新 本稿ではSpring Cloud Configの高度な機能について解説します。 高可用性の課題解決 従来のアプローチ 本番環境ではConfig Serverを ...

5月15日 16:08 投稿