2017-03-09 13:24:47 -05:00
|
|
|
# Using AMQP
|
|
|
|
|
|
|
|
Apache ActiveMQ Artemis is also a pure AMQP 1.0 broker, with a high performant and feature complete protocol manager for AMQP.
|
|
|
|
|
|
|
|
You can use *any* AMQP 1.0 compatible clients.
|
|
|
|
|
|
|
|
A short list includes:
|
|
|
|
|
|
|
|
- qpid clients at the [qpid project](http://qpid.apache.org/download.html)
|
|
|
|
- [.NET Clients](https://blogs.apache.org/activemq/entry/using-net-libraries-with-activemq)
|
|
|
|
- [Javascript NodeJS](https://github.com/noodlefrenzy/node-amqp10)
|
|
|
|
- [Java Script RHEA](https://github.com/grs/rhea)
|
|
|
|
|
|
|
|
|
|
|
|
... and many others.
|
|
|
|
|
|
|
|
|
|
|
|
# Message Conversions
|
|
|
|
|
|
|
|
The broker will not perform any message conversion to any other protocols when sending AMQP and receiving AMQP.
|
|
|
|
|
|
|
|
However if you intend your message to be received on a AMQP JMS Client, you must follow the JMS Mapping convention:
|
|
|
|
|
|
|
|
- [JMS Mapping Conventions](https://www.oasis-open.org/committees/download.php/53086/amqp-bindmap-jms-v1.0-wd05.pdf)
|
|
|
|
|
|
|
|
|
|
|
|
If you send a body type that is not recognized by this specification the conversion between AMQP and any other protocol will make it a Binary Message.
|
|
|
|
|
|
|
|
So, make sure you follow these conventions if you intend to cross protocols or languages. Especially on the message body.
|
|
|
|
|
2017-06-19 18:01:28 -04:00
|
|
|
A compatibility setting, allows aligning the naming convention of AMQP queues (JMS Durable and Shared Subscriptions) with CORE.
|
|
|
|
For backwards compatibility reasons, you need to explicitly enable this via broker configuration:
|
|
|
|
|
|
|
|
* amqp-use-core-subscription-naming
|
|
|
|
* true - use queue naming convention that is aligned with CORE.
|
|
|
|
* false (DEFAULT) - use older naming convention.
|
|
|
|
|
2017-03-09 13:24:47 -05:00
|
|
|
|
|
|
|
# Example
|
|
|
|
|
|
|
|
We have a few examples as part of the Artemis distribution:
|
|
|
|
|
|
|
|
|
|
|
|
- .NET:
|
|
|
|
* ./examples/protocols/amqp/dotnet
|
|
|
|
|
|
|
|
- ProtonCPP
|
|
|
|
* ./examples/protocols/amqp/proton-cpp
|
|
|
|
|
|
|
|
- Ruby
|
|
|
|
* ./examples/protocols/amqp/proton-ruby
|
|
|
|
|
|
|
|
- Java (Using the qpid JMS Client)
|
|
|
|
* ./examples/protocols/amqp/queue
|
|
|
|
|
|
|
|
|
|
|
|
|