ブログ アーカイブ

自己紹介

本ブログをご覧いただき、ありがとうございます。
株式会社ヒューマンインタラクティブテクノロジー(HIT)の技術グループ担当者です。

弊社ホームページ

2015年1月24日土曜日

HornetQについてさわってみた。


しんです。

新年の一発目の技術ネタを。

JBoss Enterprise Application 6 (JBossEAP6) 周りに
どっぷりつかっている今日この頃です。

その中でもJBossEAP6のメッセージングシステムである「HornetQ」に
触れる場面が多かったので、得られたことをブログに書きます。



【HornetQとは】

HorneteQは、JBossから生まれたオープンソースの非同期メッセージングサービスです。
詳しくは、HornetQのサイトを見てください。


【キューのサイズ】
HornetQの特徴の中で、今回のブログに載せるのは、「キューのメモリ制限」です。

(語弊を恐れず言うならば、)キューメモリのサイズといったものはありません。
仕組み上は無制限となります。(詳しくはこちらを参照)

仕組みとしては、受け付けたメッセージのサイズと設定された内容をもとに振る舞いを変えており、
ディスクに書き込む、もしくは、メモリが解放されるまで処理待ちになる仕組みを持っているため、
キューサイズ以上のメッセージが届いてメッセージがロストといった結果にはならないようです。


ポイントは、以下の2つのパラメータです。
max-size-bytes:メッセージの最大サイズ
address-full-policy:振る舞い 

設定箇所は以下の通りです。(標準的なインストールで、fullプロファイルを利用しています。)
/subsystem=messaging/hornetq-server=default/address-setting=#/max-size-bytes /subsystem=messaging/hornetq-server=default/address-setting=#/address-full-policy


上記の「address-full-policy」に定義できる要素は、以下の4つの要素となります。
 DROP:メッセージを破棄する。
 PAGE:ページング処理を実行して、ディスク上にメッセージの内容を出力する。
 BLOCK:キューに格納されているメッセージ総量が「address-full-policy」を下回るまで、処理待機。
 FAIL:エラーが発生。

詳しくはこちらを参照。



【次回は?】
次回は、もう少し試した結果を載せてみたいと思います。
ひとまず、今回はここまで。

0 件のコメント:

コメントを投稿