Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 5 Next »

The ZeroMQ binding can be combined with Ring Buffer Channels and the LMAX Disruptor to create low-latency processing engines. Consider the following topology where a consumer receives events from one channel, processes them and subsequently invokes another service that in turn publishes output to a second channel:

The above topology is configured to use ring buffer channels as follows:

<composite ...>

   <channel name="IncomingChannel" type="ring.buffer">
      <f3:binding.zeromq addresses="192.0.2:2024"/>
   </channel>

   <channel name="OutgoingChannel" type="ring.buffer">
      <f3:binding.zeromq addresses="190.0.1:2024"/>
   </channel>

   <component name="Component1">
      <implementation.java class="..."/>
      <consumer name="channel" source="IncomingChannel"/>
   </component>

   <component name="Component1">
      <implementation.java class="..."/>
      <producer name="channel" target="OutgoingChannel"/>
   </component>

</composite>

In this model, messages are read from a ZeroMQ socket on a thread and placed in a ring buffer slot