The ZeroMQ Binding

Fabric3 supports low-latency, high performance communications between clients and services and producers and consumers (Pub/Sub) via a binding built on the ZeroMQ and JeroMQ libraries. The following messaging patterns are supported:

  • Non-blocking queue-based messaging
  • Non-blocking pub/sub messaging
  • Request-reply messaging
  • Callbacks

It is recommended for performance reasons that services uses non-blocking (asynchronous) ZeroMQ messaging, that is, either one-way service invocations or channels. If a service needs to return a response to a client, callbacks will generally scale better than blocking-request-response messaging.

For an example of how to use the ZeroMQ binding, see the FastQuote sample.

Installation

The ZeroMQ binding comes in two versions, a native variant that uses the ZeroMQ C library and a pure Java one that is built on JeroMQ. The binding extensions are interchangeable. For example, applications can be developed using JeroMQ binding and deployed with the native binding without code or configuration changes. 

The bindings are enabled by installing the ZeroMQ or JeroMQ profile. Note that the native ZeroMQ libraries are packaged with the ZeroMQ profile and will be managed automatically by Fabric3. Installation of the native libraries is not required.

Supported Platforms

The ZeroMQ native binding is currently supported on the Fabric3 server runtime only with RedHat Linux, Windows 7, or Mac OS X. Note that the native ZeroMQ binding is currently not supported on Windows 8. The JeroMQ binding is supported on all supported Fabric3 operating systems.