LATEST VERSION: 3.7.2 - CHANGELOG
Next Steps
Pivotal RabbitMQ provides default built-in settings for running the RabbitMQ server. Without changing these values, you can work through the RabbitMQ Tutorials to learn the basics of creating messaging applications with RabbitMQ and Java. The Java client library distribution is shipped with a rabbitmq-client-tests.jar, containing several small example programs for exercising the functionality of the RabbitMQ server and client. Under Java Client API Guide, see “Bundled examples.”
The following sections provide a roadmap to possible post-installation tasks such as specifying non-default values; setting up multiple server nodes; configuring SSL; configuring clients; and so forth.
Perform General Server Configuration Tasks
- Configure non-default values for RabbitMQ server. Specify non-default file locations, ports, account or service names, environment variables, or component properties.
- Enable plug-ins and learn about plug-ins shipped with RabbitMQ.
- Understand access control permissions and set up access control with the rabbitmqctl command. To perform an operation on a resource, a user must have appropriate permissions for it. For convenience RabbitMQ maps the AMQP default exchange’s blank name to ‘amq.default’ when performing permission checks.
- Understand flow control and configure the memory threshold at which flow control is triggered.
- Configure the Management Plugin, an HTTP-based API for management and monitoring of your RabbitMQ server, along with a browser-based UI and a command line tool.
- To facilitate debugging, enable the firehose feature. With firehose enabled, you can see every message that is published and every message that is delivered, per node and per vhost.
- Implement protocol extensions. Pivotal RabbitMQ enhances the AMQP specification, with extensions for publishing, consuming, message routing, and the message life cycle.
Implement SSL
- Set up SSL. Create a certificate authority, and generate signed certificates for the server and clients in a number of formats.
- Enable SSL in RabbitMQ server. Under “SSL Support,” see “Enabling SSL Support in RabbitMQ.”
- Enable SSL in the .NET client. Under “SSL Support,” see “Configuring the .NET Client.”
- Enable SSL in the Erlang client. Under “SSL Support,” see “Configuring the Erlang Client.”
- Understand the levels of trust, key managers, trust managers, and key stores. You can create an encrypted SSL connection that requires certificate verification or one that does not require verification. The Java client supports both modes of operation. Under “SSL Support,” see “Levels of Trust.”
- Connect without validating certificates. Under “Levels of Trust,” see “Connecting without validating certificates.” An example shows a simple client connecting to a RabbitMQ server over SSL without validating the server certificate.
- Present and validate certificates. Under “Levels of Trust,” see “Presenting and validating certificates.” Set up certificate validation and connect.
Set Up Distributed Messaging and High Availability
- Compare approaches, and decide how you will connect RabbitMQ brokers on more than one machine. The options include clustering, federation, and shoveling. It is possible to mix approaches. Typically you use clustering for high availability and increased throughput, with machines in a single location. You use federation or shoveling to link brokers across the Internet for pub/sub messaging. The two approaches are similar; shoveling provides more control.
- Create and run clusters with cluster commands. Scripts show how to set up, start, restart, add nodes to, and remove nodes from clusters.
- Auto-configure a cluster by using a default cluster config file. Under “Clustering Transcripts,” see “Autoconfiguration of a cluster.” This approach is commonly used to automatically configure nodes to join a common cluster. The same configuration can be set on all nodes. Use of the cluster command overrides this approach.
- Learn what the federation plugin does, when to use it, how to configure it. To configure the plugin, under “Federation Plugin,” see the “Implementation,” “Getting Started,” and “Configuration” sections.
- Connect brokers by configuring the shovel plugin.
- Understand challenges and approaches to configuring highly available queues.
- Learn about mirrored queues.
- Create a mirrored queue. Under “Highly Available Queues,” see “Creating a Mirrored Queue.” Configure queues to be mirrored on other nodes within a RabbitMQ cluster. Should one node of a cluster fail, the queue can automatically switch to one of the mirrors and continue to operate, with no loss of service.
Set Up and Work with Pivotal RabbitMQ Clients
- Work through tutorials to create messaging applications. Learn the basics of creating messaging applications with RabbitMQ, Java, and C#.
- Perform key tasks related to RabbitMQ .NET clients. Refer to NET Client Library User Guide and .NET Client API Documentation.
- Perform key tasks related to RabbitMQ Java Clients. Refer to the appropriate sections in the Java Client API Guide as indicated in the list below.
- Connect to a broker and open a channel. See “Connections and channels” and “Connecting to a broker.”
- Increase the default allocation of consumer threads. See “Advanced Connection options.”
- Publish messages to an exchange. See “Publishing Messages.” Set message properties and build a message properties object.
- Receive messages. See “Receiving messages by subscription” and/or “Retrieving Individual Messages.” The most efficient way to receive messages is to set up a subscription using the Consumer interface. The messages will then be delivered automatically as they arrive, rather than having to be explicitly requested.
- Configure notification of returned messages to the sending client. See “Handling unroutable or undelivered messages.” If the client has not configured a return listener for a particular channel, the associated returned messages are silently dropped.
- Learn how to use JMS Client for Pivotal RabbitMQ. Set up the JMS client software and configure applications to use it.