排他ロックを使用したキャッシュスルー防止の実装方法
キャッシュスルー現象とは
キャッシュスルーはホットキー問題とも呼ばれ、高頻度でアクセスされる複雑な再構築ロジックを持つ特定のキーが突然無効化された場合に発生します。これにより、多数のリクエストが瞬時にデータベースに集中し、大きな負荷をかけることになります。
対応策
排他ロック方式(時間換算スペース)
利点:メモリ使用量が少なく、整合性が高く、実 ...
6月22日 16:35 投稿
Spring Bootでのスケジューリングフレームワーク実装ガイド
現代のアプリケーションでは、データクリーンアップから分散型タスク管理まで、信頼性の高いスケジューリングメカニズムが必須です。本稿では、Spring Bootで実装可能なスケジューリングソリューションを、ネイティブアノテーション、Quartz統合、分散型スケジューリングの観点から解説します。
スケジューリングフレームワーク比較表
タイプ
主な ...
6月19日 21:23 投稿
Java Webベースの宿舎管理システム開発ガイド
宿舎管理システムは、Java Web技術を使用したWebアプリケーションです。3つの異なるロール(学生、管理者、宿舎担当者)を持つ多層的なログインシステムを実装しています。各ユーザーには異なる権限と機能が割り当てられています。
技術スタック概要
このプロジェクトでは以下の技術を使用しています:
JSPおよびServlet
MySQLデータベース
Tomcatサーブレットコンテナ
...
6月19日 21:03 投稿
Spring Boot による MCP サーバーの実装とカスタマイズ
MCP(Model Context Protocol)は、AI プラグイン(例:Cursor、Continue、VS Code 拡張)とバックエンドサービス間の標準化された通信プロトコルです。JSON-RPC 2.0 を基盤とし、HTTP、WebSocket、stdio のいずれかのトランスポートを用いてツール呼び出しやコンテキストリソースの取得を可能にします。本稿では、Spring Boot を用いた HTTP ベースの MCP サーバーの構築 ...
6月13日 21:58 投稿
マイクロサービスアーキテクチャの設計と実装:単体システムからの移行戦略
マイクロサービスアーキテクチャの導入背景
近年、マイクロサービスアーキテクチャの採用が急増している。このアプローチは、大規模な単体アプリケーションの限界を克服するための有効な手段として注目されている。しかし、マイクロサービスという概念自体が誤解されやすい面もあり、特にサービスの適切な粒度や初期設計の難しさが課題となる。この記事では、実際の事例を ...
6月9日 19:53 投稿
Spring CloudにおけるサービスディスカバリーとConsulの実装ガイド
Consulの概要と分散システムにおける役割
ConsulはHashiCorp社によって開発されたオープンソースの分散型サービスレジストリおよび構成管理ツールです。マイクロサービスアーキテクチャにおいて、動的なエンドポイント発見やノードの死活監視、キー・バリュー形式の設定保存を一元的に提供します。Go言語で記述されているためクロスプラットフォーム対応が容易であり、単一 ...
6月9日 16:12 投稿
Spring BootアプリケーションのTomcatハングによるFeignリクエストタイムアウトの追跡と解決
プロジェクト環境
<spring-boot.version>2.3.2.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
Dockerコンテナ環境で運用
問題の概要
アプリケーション内で非同期マルチスレッド処理が広く使用されています。各非同期タスク内ではデータベースクエリ、Redis参照、Feign呼び出し、RabbitMQの送受信が ...
6月6日 23:44 投稿
Spring BootとMavenでローカルJARファイルを実行可能JARに含める方法
概要
実際の開発現場では、他チームから提供されたJARファイルをプロジェクトに組み込む必要があります。Spring BootアプリケーションをMavenで管理している場合、ローカルにあるJARを最終的な実行可能JARに含めるには、特定の設定が必要です。本稿では、その具体的な手順を解説します。
動作環境
コンポーネントバージョン
Maven3.2.3
Spring Boot2.1.1.RELEASE
In ...
6月5日 20:13 投稿
Spring Boot 環境で Redoc を活用した API ドキュメントの構築
OpenAPI 仕様に基づくドキュメント生成の概要
Java ecosystem において、API 仕様の標準化と可視化は開発効率に直結する重要な要素です。Spring Boot プロジェクトでは、SpringDoc を利用して OpenAPI 3.0 準拠の仕様書を自動生成し、それを Redoc というレンダリングエンジンで表示させる構成が一般的です。この組み合わせにより、コードの変更を追従した最新のドキュメ ...
6月4日 19:11 投稿
Seata による非同期トランザクション実装とパフォーマンス最適化
分散システム architecture において、従来の同期トランザクションは強い整合性を保証する一方で、システム全体のレイテンシ増大やスループット低下を招く主要な要因となります。特に、外部 API 呼び出しや長時間実行タスクが含まれる場合、メインスレッドがブロックされることで可用性に悪影響を及ぼします。本稿では、Apache Seata を活用し、非同期処理モデルを導入す ...
6月4日 18:52 投稿