Spring Cloud 環境における Eureka サーバーとゲートウェイの実装ガイド

サービスレジストリ(Eureka)の構築 マイクロサービス群の状態を一元管理するレジストリノードを作成します。Maven プロジェクトを起点に、依存関係、ブートストラップクラス、設定ファイルを順に定義します。 1.1 依存関係の定義 pom.xml にレジストリ機能を提供するスターターを追加します。Spring Cloud Greenwich 系と Spring Boot 2.1.x をベースに構成しています。 ...

10月11日 16:08 投稿

KubernetesにおけるVeleroを利用したバックアップ・リカバリの実践とマイクロサービス基盤の構築

VeleroによるKubernetesのリソース保護 Veleroは、Kubernetesクラスター内のリソースや永続ボリューム(PV)のバックアップおよびリカバリを管理するためのオープンソースツールです。VMware Tanzuによってメンテナンスされており、クラウドネイティブ環境におけるデータ保護の標準的なソリューションとして広く利用されています。 Veleroの基本アーキテクチャ Veleroは主 ...

9月28日 12:02 投稿

高可用性アーキテクチャのための障害注入試験と連鎖反応制御

システムの「過敏反応」を管理する技術的アプローチ 生体における過剰応答メカニズムと同様に、複雑化した現代のソフトウェアシステムも、微小な入力異常に対して予期せぬスケールの出力不安定性を示すことがあります。これを技術用語で言えば「エラー増幅効果」であり、単一コンポーネントの遅延が全体としてのサービス停止へと発展する現象です。耐障害性エンジニアリン ...

9月22日 19:16 投稿

Spring Cloud Streamのメッセージ処理設計

メッセージングフレームワーク 概要 https://spring.io/projects/spring-cloud-stream#overview https://docs.spring.io/spring-cloud-stream/docs/current/reference/html/ メッセージングの課題 複数のメッセージキューイングシステムを使用する場合、各システムのAPI差異により開発が複雑化します。Spring Cloud Streamはこれらの差異を抽象化し、統一的なプログラミン ...

9月14日 05:50 投稿

Spring Cloud Netflix ZuulによるAPIゲートウェイの実装とカスタマイズ

Netflix Zuulは、マイクロサービスアーキテクチャにおいて境界サービス(Edge Service)として機能する動的ルーティングおよびゲートウェイコンポーネントです。主な役割として、動的ルーティング、フィルタリング、モニタリング、およびレジリエンスの確保が挙げられます。 Zuulの基盤は、リクエストのライフサイクルに応じた一連のフィルタによって構成されています。 ...

9月11日 19:24 投稿

GoによるgRPCファーストのマイクロサービス構築:RESTfulゲートウェイ併用アーキテクチャ

開発環境のセットアップ 以下の環境で動作確認済みです。 Windows 10 + Go 1.24 必要なGoツールをインストールします。 go install google.golang.org/protobuf/cmd/protoc-gen-go@latest go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest go install github.c ...

8月20日 22:37 投稿

Go言語のCircuit Breaker実践ガイド:マイクロサービスの可用性を向上させる10の技法

分散システムにおいて、マイクロサービス間の依存関係は複雑であり、リモート呼び出しの失敗が連鎖的な障害(カスケード障害)を引き起こすリスクがあります。Go言語向けの軽量なフォールトトレランスライブラリである circuitbreaker を活用することで、サービス雪崩を防ぎ、システムの回復力を大幅に向上させることができます。本稿では、Goプロジェクトで circuitbreake ...

8月12日 20:22 投稿

Spring Cloud Eureka を用いたサービスディスカバリのセットアップ方法

プロジェクト依存関係の設定 まず、Spring Boot プロジェクトに Spring Cloud ネイティブスタックを読み込む必要があります。Maven を使用する場合は、以下のような依存関係を pom.xml ファイルに登録してください。 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spri ...

8月8日 10:20 投稿

Spring Cloud FeignクライアントのBean定義衝突:`FeignClientSpecification`登録エラーの解決

Spring BootアプリケーションでSpring Cloud Feignを使用している際に、以下のようなエラーが発生することがあります。 Description: The bean 'external-catalog-service.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled. Action: Consider renaming one o ...

8月4日 20:54 投稿

Maven ビルドパイプラインでの Git メタデータ自動取得と利用方法

ビルドコンテキスト情報の追跡と実装 アプリケーションのデプロイ先で、実際にビルドされたソースコードの正確なバージョンやブランチ状況を確認することは、トラブルシューティングや監査において重要です。これを実現するための標準的なアプローチとして、Maven プラグインを使用した Git リポジトリ情報の抽出があります。 特定のプラガインを利用することで、ビルド時 ...

8月3日 18:14 投稿