本稼働に向けての構成を考えよう

  • システム要件
    • Webサーバ
    • データベース
    • Twitetr日本語PublicTimelineクローラ
    • 収集した情報からインデックスを作成する
    • 検索する
    • ページに表示

こんなところかな

とりあえずはマシン1台で、無理があるなら機能別に分離予定
ハードウェアは余ってる自作PCAthlon64 X2 5000+を使う予定
DBのバックアップ先は自分のメインマシン



しなきゃいけないこと(上から順番に

  • データベース
    • DataImportHandlerの調査
    • DBの設計
    • バックアップ方法の調査
  • クローラの再設計
    • DBに登録するように修正(Tweetの取得の度に他のプロフィール情報も取得?)
    • DataImportHandlerを使いDBからインデックスを作成する方法の調査
    • どのようなインデックスを作成するか
      • 現在はuniqkey:user name contents:Tweetのみ
  • 検索
    • Sen
      • analyzer-sen.xml
    • その1 solrjを使う場合
      • 検索
        • solrでのMoreLikeThisの使い方
        • solrjで簡単に検索
      • 検索結果の取得
      • solrjで何かを取得
    • その2 solrjを使わない場合
      • 検索
        • solrのMoreLikeThisの使い方
        • Javaでhttp://〜にリクエストを投げるだけ
      • 検索結果の取得
        • SerializeしたJavaオブジェクトを取得

ここまでで検索の基本機能は完成

  • SAStrutsS2JDBCを使ってwebページを作成
    • solrJで受け取った結果をどのように表示するか?
      • クエリーの検索結果はsolrJで取得、そのとき表示のためのユーザー情報はDBから取得?
  • Webデザイン
    • ロゴとかそのへんも
    • 更にMayaaなども勉強する必要あり?

ここまでで開発環境での開発完了

  • tomcatapache連携
    • パフォーマンスチューニング
  • 今までの環境をLinuxに移行
    • Linuxのセキュリティについて調査

ここまでで実稼動環境の構築完了

サービス開始!


こうやって並べてみるとすること多い
目標は7月中
最悪夏休み終わるまでに完成させたいな

  • おまけ

サーバをXenKVMで仮想化してみようと思ったんだけど、やっぱり大きくパフォーマンス落ちちゃうのかな
これについても調べてみよう

    • おまけその2

サーバを1台追加するとなると、役割としては
サーバA:Webサーバ(検索)
サーバB:クローラ、DB、インデックスの作成
という風に機能別に分ける予定
もしこれが仮想化してあれば、マシンをメンテナンスしたいときに仮想化イメージをそのままもう1つのマシンに移せばサービスをとめる必要がなくなる。

    • おまけその3

単純にアクセス負荷が増えたら3台目の投入(ありえない)になるけど、
サーバA1
サーバA2
サーバB
という構成になって、webサーバをAに割り振る。
データ(index.htmlなど)は共通のものを持つか、サーバBにデータを置いて、サーバAから参照するという手もある。サーバBにはLVSを置き、サーバAの2つに処理を割り振る。
こんな無駄っぽいこと何故したいかっていうと、少し前にLVSとGFSテストしたから実際に使いたいってだけwww