nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
jp.ossc.nimbus.service.queue.DistributedQueueServiceは、投入されたエントリをDistributedQueueSelectorを使って分流し、複数のQueueで処理をするQueue実装サービスです。
複数のQueueに分流することで、キュー単体の性能限界を越えて処理する事ができます。但し、分流され異なるQueueに入ったエントリは、FIFOが保証されなくなります。分流の方法は、使用するDistributedQueueSelectorの実装に依存します。引き抜き順序は、最も滞留しているQueueから引き抜かれていきます。
このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。
下位サービスインタフェース | 用途 |
jp.ossc.nimbus.service.queue.DistributedQueueSelector | 分流するQueueを選択する。 |
以下に簡単なサービス定義を示します。
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE server PUBLIC
- "-//Nimbus//DTD Nimbus 1.0//JA"
- "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
- <server>
- <manager>
- <!-- 分流させるQueueサービス -->
- <service name="Queue"
- code="jp.ossc.nimbus.service.queue.DistributedQueueService">
- <!-- 分流するQueueを選択するDistributedQueueSelectorサービスのサービス名を設定する -->
- <attribute name="DistributedQueueSelectorServiceName">#DistributedQueueSelector</attribute>
- <depends>DistributedQueueSelector</depends>
- </service>
- <!-- 分流するQueueを選択するDistributedQueueSelectorサービス -->
- <service name="DistributedQueueSelector"
- code="jp.ossc.nimbus.service.queue.SimpleDistributedQueueSelectorService">
- <!-- 分流するQueueの数を設定する -->
- <attribute name="DistributedSize">5</attribute>
- </service>
- </manager>
- </server>