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