Contents
- OpenAMQ Features
- Technical Features
- Features FAQ
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.
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).
- 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.