Queue実装サービス jp.ossc.nimbus.service.queue.DistributedQueueService

jp.ossc.nimbus.service.queue.DistributedQueueServiceは、投入されたエントリをDistributedQueueSelectorを使って分流し、複数のQueueで処理をするQueue実装サービスです。
複数のQueueに分流することで、キュー単体の性能限界を越えて処理する事ができます。但し、分流され異なるQueueに入ったエントリは、FIFOが保証されなくなります。分流の方法は、使用するDistributedQueueSelectorの実装に依存します。引き抜き順序は、最も滞留しているQueueから引き抜かれていきます。

このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。

下位サービスインタフェース用途
jp.ossc.nimbus.service.queue.DistributedQueueSelector分流するQueueを選択する。

以下に簡単なサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- 分流させるQueueサービス -->
  8. <service name="Queue"
  9. code="jp.ossc.nimbus.service.queue.DistributedQueueService">
  10. <!-- 分流するQueueを選択するDistributedQueueSelectorサービスのサービス名を設定する -->
  11. <attribute name="DistributedQueueSelectorServiceName">#DistributedQueueSelector</attribute>
  12. <depends>DistributedQueueSelector</depends>
  13. </service>
  14. <!-- 分流するQueueを選択するDistributedQueueSelectorサービス -->
  15. <service name="DistributedQueueSelector"
  16. code="jp.ossc.nimbus.service.queue.SimpleDistributedQueueSelectorService">
  17. <!-- 分流するQueueの数を設定する -->
  18. <attribute name="DistributedSize">5</attribute>
  19. </service>
  20. </manager>
  21. </server>


キュー/Queue