外部に公開してはならない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 投稿