chanamq
chanamq copied to clipboard
Open source AMQP messaging broker based on Akka
ChanaMQ Server
ChanaMQ is an Akka based, AMQP messaging broker. It currently supports:
- AMQP 0-9-1
Status
- ChanaMQ is still in the alpha phase.
- Methods/Features are not supported yet:
- Authentication / Access Control
- ~~Virtual host~~
- ~~Native ssl/tls~~
- Connection.SecureOk / Connection.Blocked / Connection.Unblocked
- ~~Channel.Flow~~
- Exchange.Bind / Exchange.Unbind
- ~~Basic.Reject~~ / ~~Basic.Nack~~ / ~~Basic.Recover~~ / Basic.RecoverAsync(use Basic.Recover)
- Tx.Select / Tx.Commit / Tx.Rollback
- ~~Confirm.Select~~ / ~~Confirm.SelectOk~~
Building From Source and Packaging
- sbt clean chana-mq-server/dist
Installation
- unzip chana-mq-server/target/universal/chana-mq-server-x.x.x.zip;
- cd conf; cp prod.conf application.conf
- edit application.conf for your configuration
- cd bin; ./chana-mq-server &
- To enable persistent feature, you need to install Cassandra and create chanamq space and tables as create-cassantra.cql
Create/Delete Virtual Host
You can change the default admin REST server port via configuration chana.mq.amqp.admin.port
. The admin interface is forced to be localhost
Create virtual host:
curl localhost:15672/admin/vhost/put/vhostname
Delete virtual host:
curl localhost:15672/admin/vhost/delete/vhostname
High Available
HA of ChanaMQ is based on Akka cluster HA. It does not support queue mirror, but the message will survive hardward failure and node down if its delivery mode is set to 2 (persistent), and the queue and exchange are both durable. Each message is located on a single node, but will be reloacted to another node and recovered from persistence when this single node is down.
License
ChanaMQ server is licensed under the Apache License version 2.0.