Skip to content

SyncCrawl システムアーキテクチャ

SyncCrawlは、大規模なクローリング負荷の並行処理、安定運用、そしてエンタープライズAI連携のために分散エージェントClean Architecture 4層構造を採用しています。


4層アーキテクチャ図


4つのコア分散コンテナイメージ

SyncCrawlは、無停止リリースと独立したスケールアウトのために4つの独立したコンテナイメージで構成されます。

コンテナイメージ技術スタック主な役割と機能
smart-crawling-serverJava 21, Spring Boot 3.5, LangChain4j, FlywayAPIエンドポイント提供、Quartzスケジューリング、AIタスク計画、RAG同期
smart-crawling-agentJava 21, Playwright Java, MCP SDK定型Web収集、DOM解析、データ抽出、HTMLスナップショット保存
smart-crawling-scenario-agentJava 21, Node.js/Playwright MCP, Chromiumログイン、複数フォーム入力、無限スクロール、SPA操作などの複合シナリオ実行
smart-crawling-consoleVue 3, TypeScript, Vite, Quasar運用ダッシュボード、自然言語シナリオ作成、RAG検索検証コンソール

各層の詳細設計

1. プレゼンテーション&シナリオ制御層 (Presentation Layer)

  • 自然言語シナリオビルダー: 自然言語で目標を入力すると、LangChain4jエージェントと対話形式でブラウザ操作シナリオを生成します。
  • リアルタイム実行モニタリング: WebSocketおよびSSEを通じてブラウザ実行画面のスナップショットと実行ログを中継します。

2. オーケストレーション&スケジューリング層 (Orchestration Layer)

  • LangChain4j AIエンジン: ページ構造と意図を分析し、最適なPlaywrightツールを動的にバインドします。
  • Quartz分散スケジューラー: 多数の定期クローリングジョブをDBクラスタリングに基づき分散実行します。
  • Redisson分散キュー: ワーカーノード間の負荷分散とフェイルオーバーを制御します。

3. ブラウザ自動化&実行層 (Worker & Execution Layer)

  • Playwright MCP連携: Model Context Protocol標準に準拠してブラウザインスタンスを制御します。
  • SSRFセキュリティガード: localhost127.0.0.1および社内プライベートIPへの不正アクセスを事前に検証して遮断します。
  • セレクター自動復旧エンジン: DOM構造変更時に周辺文脈とアクセシビリティ情報を照合し、代替セレクターを検出します。

4. データ&RAGインフラ層 (Data & Infra Layer)

  • PostgreSQL&Flyway: メタデータと実行ログを管理し、スキーマの自動マイグレーションをサポートします。
  • Vector DB&埋め込み: 抽出テキストをチャンキングしてベクトル化し、セマンティック検索を提供します。
  • MinIO / S3ストレージ: 収集時の原本HTMLとスクリーンショット証跡を保管します。

Last updated: