« 高速なCometサーバを書いてみた件 | メイン | Parallel::Prefork - Perl でマルチプロセスなサーバを書く方法 »

2008年03月19日

Q4M (Queue for MySQL) 0.3 リリース

 MySQL 上で動作するメッセージキュー「Q4M」のバージョン 0.3 をリリースしました。今回のバージョンアップで、以下の機能が追加になっています。

メッセージリレー機能

 Q4M テーブルに挿入されたメッセージを、別のサーバで動作する MySQL に転送できるようになりました。サーバが落ちたりネットワークが切断された場合でもメッセージの喪失や複製が発生しないように設計されています。

 例えば Pathtraq の場合、サービス本体と本文解析システムは、それぞれ物理的に離れたロケーションで運用されています。そして、両者間の情報交換のために Q4M のメッセージリレーを用いています注1。以前は別の MQ 注2 を使っていて、メッセージの喪失が発生したりパフォーマンスの問題があったりしたのですが、Q4M に切り替えてからは快調です。

 なお、メッセージリレーに必要なサーバ側の機能はすべて SQL で実装してあるので、リレープログラムをカスタマイズして、メッセージブローカ (メッセージの宛先や内容のフォーマットを変更するプログラム) を作成することもできます。

複数テーブルの優先度付き購読

 複数のキューを優先度付きで指定して、データを読み込めるようになりました。これを利用して、優先待ち行列 (Priority Queue) を作成することが可能です。

 以上です。詳しくは、Q4M のホームページをご覧ください。

注1: 通信内容は SSL を用いて保護しています。参考: MySQL サーバに SSL 接続 - id:kazuhookuのメモ置き場
注2: POE::Component::MessageQueue を使っていました

投稿者 kazuho : 2008年03月19日 06:29 このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

トラックバック

このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/1813