タグ

kestrelに関するy-kobayashiのブックマーク (4)

  • Kestrel:Reliable Read

    メッセージングシステムで、dequeue 後に正しく処理できずに異常終了したらどうなるのか? Twitter などで利用されている Kestrel には reliable read という仕組みがあり、一度 dequeue したアイテムの処理中にエラーが発生しても、キューの先頭に enqueue できる。 この動作を実際に確認してみた。 Reliable Read Command Memcached プロトコルで reliable read をするには、キューからアイテムを取得する際に / に続けて以下のオプションを指定する。 /open : 一時的に dequeue /close : dequeue を確定 /abort : dequeue を取り消し、queue の先頭に enqueue Reliable Read Examples 以下の4パターンについて、キューの処理と peek

    Kestrel:Reliable Read
  • ActiveMQ or RabbitMQ or ZeroMQ or ... - wivlog

    斜め読み, MQ  仕事柄 MQ には余り関わりが無い(更にいうと OSS の MQ にはもっと関わりが無い)のでちょっと調べてみた。ActiveMQ と RabbitMQ が有名だよね、と思ってググってみると、皆大好き Stack Overflow にこんなエントリを発見。この辺りの MQ に興味があるんだけど、何か聞かしてよ、という声に対する反応を斜め読み。 斜め読みTwitter は自前の MQ (Kestrel) を持ってるよ(ActiveMQ と RabbitMQ にストレステストをかけたが、ActiveMQ は遅すぎて、RabbitMQ は Producer と Consumer が多いときに壊れちゃうから自前で作ったみたい。でも RabbitMQ 2.0 以降ではこの問題はもう直ってるらしい)。ActiveMQ はパフォーマンスを向上させたり、スケーラビリティを向上させるため

  • Twitterで使っているScalaで書かれたオープンソースのメッセージキューサーバー、Kestrel – yusuke.blog

    Kestrelは大規模かつ高速に運用できるメッセージキューサーバーです。Twitterで使っています。 ソースはhttps://github.com/robey/kestrelよりチェックアウトできます。 ・特徴 Kestrelは特徴として – memcachedプロトコルをサポートしており、クライアントのプラットフォーム非依存 – Scalaで書かれており、高速なJVMの恩恵を受けることが出来る – 全部で2500行ほどとシンプル – 基メモリベースで高速だがメッセージはファイルシステムにジャーナルが記録されており耐障害性が確保されている – キューから取り出したメッセージをクライアントがacknowledgeするまで捨てないことで処理漏れを防ぐことができる といったことが挙げられます。 ・Memcachedプロトコル Memcachedプロトコルの基は非常に簡単で、setコマンドで

    Twitterで使っているScalaで書かれたオープンソースのメッセージキューサーバー、Kestrel – yusuke.blog
  • PHP+Kestrel+Supervisorでお手軽タスクキューイング

    こんにちは、久保田です。 ウェブサービスでは、ユーザのアクションに従ってバッチ処理を行わなければならないケースがままあります。この記事では、バッチ処理の手法の一つであるタスクキューイングをPHPとKestrelとSupervisorを利用して行うやり方の導入を紹介します。 なぜなにタスクキューイング ウェブサービスでは、ユーザのアクションに従って非同期にバッチ処理を行うようなケースがよくあります。 例えばflickrのような写真を共有するウェブサービスで言えば、ユーザが写真をアップロードしたあとに非同期でその画像の複数のサムネイル生成や加工をしなければならないケースがあります。 よく見られるのは、DBにバッチ処理のためのタスクデータを入れておいて、後でcronで定期的に起動するワーカープロセスからバッチ処理を行う方法です。このやり方には、ワーカーを複数プロセスで扱いづらい、処理がリアルタイ

    PHP+Kestrel+Supervisorでお手軽タスクキューイング
  • 1