外部に公開してはならないAPI endpointの対処法

システム開発において、特定のAPIを外部ネットワークに公開せず、内部サービス間でのみ利用できるようにしたい場合、代表的な3つのアプローチが存在する。 内部向け・外部向けでマイクロサービスを分離する ゲートウェイとRedisを活用したホワイトリスト方式 ゲートウェイとAOPによるリクエスト元判定 以下で、それぞれの方案の特徴と実装方法について詳しく解説する。 1 ...

5月23日 20:00 投稿

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 投稿

JWTとマイクロサービス間通信の実装と仕組み

JWTの基本構造と実装 JWT(JSON Web Token)は、認証と認可を実現するためのオープン標準(RFC 7519)です。JSONベースの軽量なセキュリティトークンで、ヘッダー、ペイロード、署名の3部分で構成されます。システム間での安全なクレーム情報の伝達に利用されます。 JWTのメリット 軽量性: JSON形式のため、XMLよりも軽量で解析が容易 自己完結性: ユーザークレームを含 ...

5月19日 17:56 投稿

マイクロサービスの学習と実装

マイクロサービスの概要 単体アプリケーションを複数の小さなサービスに分割し、それぞれ独立してデプロイするアーキテクチャです。 使用ポート 黒馬モール: 18080 Nacos: 8848 Seata: 7099 Sentinel: 8090 RabbitMQ: 15672 Elasticsearch: 9200 Kibana: 5601 MyBatisPlusの導入 MyBatisPlusは、MyBatisの機能を拡張し、単 ...

5月18日 01:02 投稿

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 投稿

マイクロサービスアーキテクチャにおける同期通信メカニズムの詳細分析

マイクロサービスアーキテクチャ概要 マイクロサービスアーキテクチャは、アプリケーションを一連の小さなサービスに分割する設計手法で、各サービスは独立したプロセスで実行され、通常はビジネス能力に基づいて組織化されます。これらのサービスは、多様な通信方法を介して相互作用し、全体のアプリケーション機能を実現します。本稿では同期通信に焦点を当て、非同期通 ...

5月15日 11:06 投稿