Features

Main Features

Contents

  1. OpenAMQ Features
  2. Technical Features
  3. Features FAQ

1. OpenAMQ Features

Message Routing

Implements the AMQ message routing architecture with a set of high performance exchange types:

  • Implements the AMQP fanout, direct, topic and header exchange types.
  • Create and manage exchanges.
  • Hierarchical topics of any complexity.

Message Queuing

Implements the AMQ queueing model with flexible user-defined message queues:

  • Create and manage named or unnamed queues.
  • Basic content messages of zero bytes up to 4Gb.
  • Multiple readers per queue with round-robin dispatching
  • Asynchonous message publishing and dispatching.
  • Shared queues and exclusive private queues.

Resource Management

Provides the operator with control over use of system resources:

  • Configurable limits on queue sizes.
  • Configurable limits on maximum memory used for messages.
  • Automatic slowing of heavy publishers when limits are exceeded.

Ease of Use

Is designed for extreme usability and configurability:

  • Single stand-alone binary.
  • Natively portable to all modern operating systems.
  • Runs with zero configuration if needed.
  • Configurable through command-line switches.

Clustering and Failover

Supports failover and scalability through in-built clustering:

  • Create high-availability server pairs.
  • Connect servers and server pairs into cluster architectures.
  • Fanout publish/subscribe load across many servers.
  • Configurable client-server heartbeating.

Security

Supports extensible and configurable security options:

  • Configurable user definitions.
  • SASL authentication (PLAIN mechanism).

Administration

Is easy to administer via secure remote shell or the command line:

  • Configuration via XML configuration files or command-line.
  • Remote administration and configuration (amq_shell).

Logging

Includes a complete log file management system:

  • Configurable debug logging levels.
  • Logging of normal client application accesses.
  • Logging of all exceptional events, warnings, and errors.
  • Automatic daily cycling of log files.
  • Configurable log archiving process (compression, removal, etc.)

WireAPI Client Principal Features

Provides the cross-language WireAPI for application development:

  • Support for all methods defined in the AMQP standard.
  • Asynchronous background message delivery.
  • Error reporting to applications.
  • Currently available for C/C++.

Automation

Comes with tools for testing and automation:

  • Includes full test client (amq_client).
  • Extensive PAL scripting language for automation and testing.
  • Console extension protocol.

Coming Soon...

Planned and/or in progress:

  • Secure SASL authentication mechanisms.
  • TLS/SSL Encryption.
  • Server access controls (user groups and realms).
  • Persistent messages and transactions.
  • WireAPI clients for Perl, Python, PHP, Ruby, Java.

2. Technical Features

Code Platform

Built on a high-performance portability framework:

  • Multithreaded ANSI C built on custom client/server frameworks.
  • Portable to Linux, Windows, Solaris, and other Unix systems.
  • Single code base builds both single-threaded and multi-threaded versions.

Performance and Stability

Designed for fast performance and reliability:

  • Server starts and is ready for connections in one second.
  • Built on a low-latency, high-throughput communications framework.
  • Configurable TCP/IP parameters (timeouts, buffers).
  • Configurable OS footprint (memory, number of threads).
  • Configurable memory managers (including heap caching).
  • Processes 40-50k transient messages per second on single CPU.
  • Processes 200k transient messages per second on multiway box ([/performance.html:detailed test results).

3. Features FAQ

  • What makes OpenAMQ special? Answer: the one thing that stands out with OpenAMQ is the quality of the product. It's not just software - it's a large, smooth-running machine that will work for decades, whatever trends come and go.
  • How does ANSI C compare to Java? Answer: recent Java runtimes are very fast but as someone said, "Java kills your system". If you are running a large Java server in any case, you may prefer an AMQ Java broker. But for software that installs silently and runs without a whisper, you want a pure ANSI C solution, and that means OpenAMQ, and the decades of R&D into internet servers that went into it.
  • I want feature X, how do I get it? Answer: if it's supported by the AMQP standard, and is not yet in OpenAMQ, ask us.