Redisによる複数ルールレートリミットと重複送信防止の実装方法
Redisを利用したレートリミット実装は一般的ですが、多くの場合は単一ルール(例:1分あたり1回アクセス、60分あたり10回アクセスなど)に限定されています。しかし、実際のシステムでは一つのインターフェースに対して複数のルールを同時に適用する必要がある場合があります。特に分散システム環境では、この課題をどのように解決すればよいでしょうか。ここでは、Redisを ...
6月25日 16:04 投稿
Springフレームワークにおけるトランザクションの実装メカニズムとソースコード分析
序論
前の記事「Springトランザクション詳細解説」では、Springにおけるトランザクションの理論的知識と実践的な内容を詳しく整理しました。本稿では現象の背後にある本質に迫り、Springトランザクションの内部実装原理と関連するソースコードを深く掘り下げて分析します。
1. トランザクション関連コンポーネント
1.1 トランザクション状態TransactionStatus
Transact ...
6月20日 23:21 投稿
Hystrixの動作原理と実装解析
Hystrixの基本コンセプト
クラスレベルでのカスタム設定
柔軟なフォールバック戦略の設定:
セマフォ/スレッド / タイムアウト(1秒)、サーキットブレーカー(エラーレート)
HystrixCommandProperty
フォールバック境界の特定方法:
@HystrixCommand(Spring AOP)
HystrixCommand 抽象クラス
データ収集:
サーキットブレーカーのトリガー条件(10秒 / 20リクエスト ...
6月17日 19:53 投稿
Spring AOPでのアスペクト実装:アノテーションとXMLによる設定ガイド
Spring AOP (アスペクト指向プログラミング) の概要
Spring Frameworkが提供するAOP(アスペクト指向プログラミング)機能は、ロギング、トランザクション管理、セキュリティといった横断的な関心事をモジュール化し、ビジネスロジックから分離するための強力なパラダイムです。これにより、コードの凝集度を高め、保守性を向上させることができます。Spring AOPは主にAspe ...
6月12日 18:03 投稿
Spring Bootの核心概念と仕組み
Spring Bootの概要
Springは、企業アプリケーション開発の複雑さを解決するために作られた、階層化された軽量なJavaオープンソースフレームワークです。その階層化されたアーキテクチャにより、ユーザーは必要なコンポーネントを選択できます。また、IoC(Inversion of Control)メカニズムはビジネスオブジェクトの置き換えの複雑さを低減し、コンポーネント間の結合を緩 ...
6月10日 21:26 投稿
Springフレームワークの核心概念と実装手法
Springとは何か
SpringはオープンソースのJava EEアプリケーションフレームワークであり、主にBeanのライフサイクルを管理する軽量コンテナとして機能します。ここでいう「Bean」とは、Springコンテナによって管理されるJavaオブジェクトのことです。これらのオブジェクトはクラスのインスタンスであり、IoC(制御の反転)コンテナにより生成・管理されます。開発者は直接 ...
6月9日 20:40 投稿
Springにおけるトランザクション管理の実装と制御メカニズム
Spring FrameworkはJDBC操作を抽象化し、データベースアクセスを簡素化しますが、その過程で必ず直面する課題がトランザクション制御です。Springはこの要件に対応するため、柔軟かつ多層的なトランザクション管理機能を提供しています。
1. トランザクションの設定手法
Springでは、トランザクションの適用方法を大きく「宣言型」と「プログラム型」に分類できます。ど ...
6月9日 18:03 投稿
Spring AOP の自動設定とプロキシ生成メカニズム
Spring Boot では、AOP 機能を有効にするために AopAutoConfiguration という自動設定クラスが提供されている。このクラスは特定の条件が満たされた場合にのみ有効化され、AspectJ ベースの AOP を自動的に設定する。
@Configuration
@ConditionalOnClass({ EnableAspectJAutoProxy.class, Aspect.class, Advice.class, AnnotatedElement.class })
@ConditionalOnProperty ...
6月7日 20:49 投稿
外部に公開してはならないAPI endpointの対処法
システム開発において、特定のAPIを外部ネットワークに公開せず、内部サービス間でのみ利用できるようにしたい場合、代表的な3つのアプローチが存在する。
内部向け・外部向けでマイクロサービスを分離する
ゲートウェイとRedisを活用したホワイトリスト方式
ゲートウェイとAOPによるリクエスト元判定
以下で、それぞれの方案の特徴と実装方法について詳しく解説する。
1 ...
5月23日 20:00 投稿
HyperfにおけるInjectアノテーションの内部仕組み解説
HyperfのInjectアノテーションがnew演算子によるインスタンス生成時にでも動作する仕組みについて、開発者が以下の仕組みを解説しています。
プロキシクラス生成の条件
Hyperfはすべてのクラスに対してプロキシクラスを生成しません。/runtime/container/proxyディレクトリに保存されるプロキシファイルは、AOP(Aspect Oriented Programming)が必要なクラスに限定され ...
5月18日 03:00 投稿