ZendQueueとKestrelでメッセージキューサーバーを体験

Kestrel

Scalaで書かれたメッセージキューサーバー。Twitterで使われてるらしいです。
Twitterで使っているScalaで書かれたオープンソースのメッセージキューサーバー、Kestrel :侍ズム#samuraism

インストールと起動

$ curl -O http://robey.github.com/kestrel/download/kestrel-2.4.1.zip
$ unzip kestrel-2.4.1.zip
$ cd kestrel-2.4.1
$ sudo java -jar kestrel_2.9.2-2.4.1.jar

ZendQueue

Zend Frameworkのコンポーネントの1つで、メッセージキューを利用するために使います。  

https://github.com/zendframework/ZendQueue

メッセージを格納する方法によって複数のアダプタが用意されています。
Kestrel用のアダプタはありませんが、Kestrelはmemcachedプロトコルをサポートしているので、MemcacheQアダプタを利用します。

Memcache

あらかじめMemcachedライブラリもインストールしておいて下さい。
Macの場合はHomebrewを使うと簡単にインストールできます♪

$ brew install memcached
$ brew install memcache-php

メッセージキューサーバーを体験

2つのスクリプトを用意してください。
・worker.php : ワーカープロセス。キューからメッセージを取得して表示する。 ・front.php : キューにメッセージを送信する。

ターミナルを2つたちあげてください。
・ターミナル1でworker.phpを実行
プロンプトが返ってこない → Kestrelのキューを監視してくれています。

・ターミナル2でfront.phpを実行すると…
ターミナル1に「Hello, World!」と表示されます!

簡単ですが以上です。
Hello, Worldが表示された時には感動しますね (・∀・)
worker.phpを実行するターミナルを増やしたりするとなお楽しくなってきます♪