Red Hat Training
A Red Hat training course is available for Red Hat Fuse
第33章 DataSet
データセットコンポーネント
DataSet コンポーネント(1.3.0 以降で利用可能)は、システムの負荷およびソークテストを簡単に実行するメカニズムを提供します。これは、メッセージのソースとして、データセットを受け取ることをアサートする方法の両方で、DataSet インスタンス を作成することを可能にすることで機能します。
Apache Camel は、データセットの送信時に スループットロガー を使用します。
URI 形式
dataset:name[?options]
name は、レジストリーで DataSet インスタンス を見つけるために使用されます。
Apache Camel には、
org.apache.camel.component.dataset.DataSet
のサポート実装が同梱されており、独自の DataSet を実装するためのベースとして使用できる org.apache.camel.component.dataset.DataSetSupport
クラスです。Apache Camel には、テストに使用できる実装( org.apache.camel.component.dataset.SimpleDataSet
、org.apache.camel.component.dataset.ListDataSet
、および org.apache.camel.component.dataset.FileDataSet
)も同梱されます。これらはすべて DataSetSupport
を拡張します。
オプション
オプション | デフォルト | 説明 |
---|---|---|
produceDelay
|
3 | 遅延をミリ秒単位で指定できます。これにより、プロデューサーが一時停止し、低速なプロデューサーをシミュレートします。このオプションを -1 に設定し、遅延なしを強制しない限り、最低 3 ミリ秒の遅延を使用します。 |
consumeDelay
|
0 | ミリ秒で遅延を指定できるようにします。これにより、コンシューマーは低速なコンシューマーをシミュレートするために一時停止します。 |
preloadSize
|
0 | ルートが初期化を完了する前に事前ロードするメッセージ数を設定します(送信)。 |
initialDelay
|
1000 | Camel 2.1: メッセージの送信を開始する前に待機する期間(ミリ秒単位)。 |
minRate
|
0 | DataSet にこの数のメッセージが含まれるまで待ちます。 |
dataSetIndex
|
lenient
|
Camel 2.17:
CamelDataSetIndex ヘッダーの動作を制御します。サポートされる値は strict 、lenient および off です。Camel 2.17 より前のデフォルトの動作は、dataSetIndex=strict を設定して復元できます。
コンシューマーの場合:
プロデューサーの場合:
|
URI にクエリーオプションは
?option=value&option=value&.. の形式で追加できます。
DataSet の設定
Apache Camel は、DataSet インターフェイスを実装する Bean のレジストリーでルックアップします。そのため、以下のように独自の DataSet を登録できます。
<bean id="myDataSet" class="com.mycompany.MyDataSet"> <property name="size" value="100"/> </bean>
例
たとえば、メッセージのセットがキューに送信され、メッセージを失うことなくキューから消費されることをテストするには、以下を実行します。
// send the dataset to a queue from("dataset:foo").to("activemq:SomeQueue"); // now lets test that the messages are consumed correctly from("activemq:SomeQueue").to("dataset:foo");
上記はレジストリーを検索して、メッセージの作成に使用される foo DataSet インスタンスを見つけます。
次に、以下に示すように
SimpleDataSet
を使用するなど、DataSet 実装を作成し、データセットのサイズやメッセージがどのように見えるかなどを設定します。
DataSetSupport のプロパティー
プロパティー
|
タイプ
|
デフォルト
|
説明
|
---|---|---|---|
defaultHeaders
|
Map<String,Object>
|
null
|
デフォルトのメッセージボディーを指定します。SimpleDataSet の場合、これは一定のペイロードです。ただし、メッセージごとにカスタムペイロードを作成する場合は、
DataSetSupport の独自の導出を作成します。
|
outputTransformer
|
org.apache.camel.Processor
|
null
|
|
size
|
long
|
10
|
送信/消費するメッセージの数を指定します。
|
reportCount
|
long
|
-1
|
進捗を報告する前に受信するメッセージの数を指定します。大規模な負荷テストの進捗を表示するのに便利です。< 0 の場合、size / 5、が 0 の場合は size 、それ以外の場合は reportCount 値に設定されます。
|
SimpleDataSet
SimpleDataSet
は DataSetSupport
を拡張し、デフォルトのボディーを追加します。
表33.1 SimpleDataSet の追加プロパティー
プロパティー
|
タイプ
|
デフォルト
|
説明
|
---|---|---|---|
defaultBody
|
Object
|
<hello>world!</hello>
|
デフォルトのメッセージボディーを指定します。SimpleDataSet の場合、これは一定のペイロードです。ただし、メッセージごとにカスタムペイロードを作成する場合は、
DataSetSupport の独自の導出を作成します。
|
ListDataSet
List
DataSet
は DataSetSupport
を拡張し、デフォルトの本文の一覧を追加します。
表33.2 ListDataSet の追加プロパティー
プロパティー
|
タイプ
|
デフォルト
|
説明
|
---|---|---|---|
defaultBodies
|
Object
|
<hello>world!</hello>
|
|
size
|
long
|
10
|
|
FileDataSet
SimpleDataSet
は ListDataSet
を拡張し、ファイルから本文を読み込むサポートを追加します。
表33.3 FileDataSet の追加プロパティー
プロパティー
|
タイプ
|
デフォルト
|
説明
|
---|---|---|---|
sourceFile
|
String
|
null
|
|
delimiter
|
String
|
\z
|
|