タグ

Qiitaとアクセスに関するkyo_agoのブックマーク (2)

  • あなたの知らない鬱陶しいWebクローラーに立ち向かう方法

    おことわり 技術側の話は少ないです。 記事の内容を真に受けた結果発生した損害などの責任は負いませんのでご了承ください。 まえがき. 記事のターゲット読者について 継続的に治安の悪いWebクローラーから大量にアクセスされていて悩んでいる人 タイトルに釣られて興味位で見に来た人 陶しいWebクローラーの開発者 継続的に 不定期ではなく一定のパターンで定期的にアクセスがあることを指します。 毎日、毎時、毎分、毎秒など。 治安の悪い いわゆるWebクローラー運用の「お作法」から道を外れていることを指します。 robots.txt無視、UA偽装、非常に短い時間でのバーストアクセスなど。 大量に Webクローラーからアクセスされていることを察知出来るほどのある程度まとまったアクセス量があることを指します。 未知のWebクローラーからWeb上の資源を守るのは非常に困難です。 第1部. 振る舞いか

    あなたの知らない鬱陶しいWebクローラーに立ち向かう方法
  • Goの同時関数呼び出しを1回で済ませられるライブラリ 「SingleFlight」 が便利 - Qiita

    tl;dr 高頻度に叩かれがちな重めの取得系関数呼び出しはSingleFlight を使おう! 動機 Cacheが切れた途端Mysqlに大量のアクセスが流れ込み、LAが上がる現象をどう回避しようか考えていたときに、SingleFlight というライブラリを見つけたため使えるか計測してみた。 SingleFlightって何? 複数人が同じ関数呼び出しを同時にした場合、最初の1人だけ関数を実行し、残りの人は、最初の人が実行した関数呼び出しが終了するまで待機し、最初の1人が関数呼び出しの結果を取得したら、待機してる残りの人に結果をシェアしてくれる。 Goからリソースへのアクセスが同時に行われても、1だけでよくなるから嬉しい。効率的。 もちろんイミュータブルな関数じゃないと使えない。 計測環境 計測対象 3MysqlQueryを叩き、合計が500ms位かかるGo API 計測ツール veg

    Goの同時関数呼び出しを1回で済ませられるライブラリ 「SingleFlight」 が便利 - Qiita
  • 1