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

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

6月5日 16:00 投稿

Spring Cloud Config による分散設定管理の実装

マイクロサービスアーキテクチャでは、多数のサービスが協調して動作しますが、各サービスには固有の設定が必要です。サービス数が増大するにつれ、個別の設定ファイルを個別に管理・更新することは運用コストを著しく増大させます。Spring Cloud Configは、これらの設定を外部化・一元管理するためのソリューションを提供します。 Spring Cloud Config の構成要素 ...

6月1日 11:13 投稿

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

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

5月24日 18:24 投稿

Feignクライアントによるマイクロサービス呼び出しとサーキットブレーカーの内部メカニズム

Feignは宣言型のHTTPクライアントとして設計されており、マイクロサービス間通信を簡略化します。Spring CloudではRibbonとEurekaとの統合により、負荷分散を実現したHTTPクライアントとして利用可能です。 環境設定: <spring-boot.version>2.3.2.RELEASE</spring-boot.version><br></br><spring-cloud.version>Hoxton.SR9</spring-clou ...

5月22日 03:11 投稿

Seataによる分散トランザクションの実践ガイド

マイクロサービス環境では、データベースやサービスが分割されることで、従来の単一DBトランザクションでは対応できない「複数サービス・複数DBにまたがる一貫性」の問題が生じます。この課題を解決するための代表的なフレームワークがSeataです。 分散トランザクションの基本戦略 強一貫性:全ノードが成功か失敗かを同期的に保証。性能は犠牲になるが、整合性は確実 ...

5月20日 18:39 投稿

Rust製軽量マイクロサービスフレームワークfusen-rsの紹介:DubboおよびSpringCloudとの相互運用性

概要 fusen-rsは、Rustのマクロを活用してコンパイル時の「リフレクション」を実現する軽量かつ高性能なマイクロサービスフレームワークです。従来のRPCフレームワークで一般的だったコード生成スクリプトやスキャフォールディングツールへの依存を排除し、Javaのリフレクションプロキシに近い使い勝手を提供しつつ、ゼロコスト抽象化による高いパフォーマンスを維持します ...

5月18日 19:08 投稿

Spring Cloudマイクロサービス連携: OpenFeignとRestTemplateによる呼び出しと認証

Spring Cloudエコシステムにおいて、マイクロサービス間の通信はシステム設計の重要な側面です。サービスを連携させるためのアプローチはいくつか存在しますが、本記事では特にOpenFeignとRestTemplateに焦点を当て、その利用方法と認証メカニズムの統合について解説します。 マイクロサービス間通信の選択肢 Spring Cloud環境下でのサービス間呼び出しには、主に以下の方 ...

5月18日 01:20 投稿