メインコンテンツまでスキップ

Java.

31 — Java に関する記事

01

PolarDB のストレージ・コンピュート分離

アーキテクチャの観点から PolarDB のストレージ・コンピュート分離設計を分析します。計算とストレージのデカップリングがどのように拡張性・ストレージコスト・高可用性の課題を解決するのかを、AWS Aurora や従来型 MySQL アーキテクチャと比較しながら解説します。

02

マイクロサービスアーキテクチャ設計

モノリシックアーキテクチャのボトルネックから出発し、マイクロサービスのコア設計原則、全体アーキテクチャの構成、重要な設計課題を整理し、その拡張能力、導入の難しさ、適用範囲についても考察します。

03

L1・L2 二段キャッシュの設計

L1(ローカル)キャッシュと L2(Redis)キャッシュによる階層アーキテクチャを紹介。アクセスの流れ、二段のキャッシュがそれぞれ解決する問題、整合性と容量制御、そして代表的なキャッシュ更新戦略について。

04

ETCD を探る

分散協調の実際のニーズから出発して etcd の位置づけと Raft による強整合性の原理を紹介し、クラスタ構築と etcdctl での検証の過程を記録。協調の場面における Redis とのトレードオフも比較します。

05

Netty を深く学ぶ

BIO の限界から出発し、Java NIO の Channel・Buffer・Selector という 3 大コンポーネントと Reactor スレッドモデルを整理し、Netty の高性能ネットワーク通信を支える設計思想を理解します。

06

Redis 分散ロック

ローカルロックから分散ロックへ: Redis のアトミックなコマンドでロック取得と安全な解放を実装し、ロックの有効期限、WatchDog による延長、マスター/スレーブ切り替え時の一貫性リスク、そして etcd/ZooKeeper とのトレードオフを考えます。

07

Alibaba Cloud リアルタイムデータウェアハウス

Alibaba Cloud の Flink、DataHub、Hologres でフルマネージドなリアルタイムデータウェアハウスを構築する方式:コンポーネント選定、処理フロー、そして ODS/DWD/DWS/ADS のレイヤー設計。

08

Canal コンポーネント

Canal は Alibaba がオープンソースで公開している、MySQL Binlog ベースの増分購読・消費コンポーネントです。本記事では、その動作原理、よくある CDC コンポーネントとの比較、そしてクラスターによる高可用デプロイでの注意点を整理します。

09

アーキテクチャ設計の原則

システムアーキテクチャ設計では、拡張性・信頼性・性能・セキュリティ・保守性など複数の観点の間でトレードオフを行う必要があります。本記事ではこれらのよくある設計原則と、アーキテクトが持つべき思考法を整理します。

10

二重送信の防止

サーバー側でワンタイム Token を生成して Redis に保存し、フォームとともにクライアントへ配布、送信時に検証が通れば即座に削除する。この仕組みによる二重送信・CSRF 対策の原理、実装手順、セキュリティ上の注意点を記録します。