Custom Parameters
As mentioned in Getting Started - Custom Parameters as an end user, an Application Developer has the opportunity to customize their Service Instance by using custom parameters.
consumer_timeout
RabbitMQ's consumer_timeout
parameter, see Delivery Acknowledgement Timeout,
can be specified via the custom parameter consumer_timeout
.
An integer
value greater than or equal to 1800000
is expected.
The default value is 1800000
.
The unit is milliseconds
.
tls-protocols
You can specify the TLS protocol version via the custom parameter tls-protocols
. The custom parameter tls-protocols
correlates with RabbitMQ's configuration parameter ssl_options.versions
, see
Limiting TLS Versions Used by the Server.
An array with protocol versions is expected. The allowed protocol version values are tlsv1.3
and tlsv1.2
.
tls-ciphers
You can limit the TLS ciphers via the custom parameter tls-ciphers
. The custom parameter tls-ciphers
correlates with
RabbitMQ's configuration parameter ssl_options.ciphers
, see Configuring Cipher Suites.
An array with cipher names is expected.
There is no validation enabled for the user provided value and therefore existing instances can break when applying this parameter.
Use RabbitMQ Plugins
a9s Messaging allows to enable the following RabbitMQ plugins:
- rabbitmq_consistent_hash_exchange
- rabbitmq_federation
- rabbitmq_federation_management
- rabbitmq_mqtt
- rabbitmq_sharding
- rabbitmq_shovel
- rabbitmq_shovel_management
- rabbitmq_stomp
- rabbitmq_tracing
- rabbitmq_webstomp (available with a9s Messaging 4.0 and above)
- rabbitmq_webmqtt (available with a9s Messaging 4.0 and above)
Plugin Activation
You can activate RabbitMQ plugins with the cf create-service
and
cf update-service
commands using additional configuration parameters.
cf create-service a9s-messaging40 rabbitmq-single-small my-messaging-service \
-c '{ "plugins": ["rabbitmq_shovel", "rabbitmq_shovel_management"] }'
cf update-service my-messaging-service \
-c '{ "plugins": ["rabbitmq_shovel", "rabbitmq_shovel_management"] }'
Plugins for Protocols
Some plugins that can be enabled with a9s Messaging provide additional protocols for use with RabbitMQ. The usernames
and passwords for these protocols are the same as with the default ACMQ protocol. Protocols enabled via plugin will be
set to the default \
RabbitMQ vhost.
Protocal | TCP Port | SSL Port | Further information |
---|---|---|---|
MQTT | 1883 | 8883 | RabbitMQ MQTT Docs |
WebMQTT | 15675 | 15676 | RabbitMQ MQTT Docs |
STOMP | 61613 | 61614 | RabbitMQ STOMP Docs |
WebSTOMP | 15674 | 15673 | RabbitMQ STOMP Docs |
Create Messaging Users
a9s Messaging allows to create new users with different roles (permissions) by creating service keys.
The possible roles are:
- management
- policymaker
- monitoring
- administrator
You can read more about RabbitMQ roles and permissions here.
Create a New Role
You can create a new user with specific permissions (roles) giving the role
following custom parameter. This parameter
receives an array of roles:
cf create-service-key my-messaging-service my-key -c '{"roles": ["administrator", "management"]}'
Using High Availability Queues in Cluster Setup
If clusters are enrolled, this does not mean that all created queues are HA queues!
High Availability in a9s Messaging 4.X and above
For a9s Messaging 4.X and above, HA is available by default for all quorum queues. The mirrored classic queues from the previous RabbitMQ versions were removed and the still existing classic queues are not able to be replicated anymore.
Using Custom Policies in RabbitMQ
To create and use custom policies, please see Parameters and Policies — RabbitMQ