sendToRabbitMq

Processor that acts as a RabbitMQ producer to publish data to a given RabbitMQ broker.

Properties

Name Summary

forwardProperty()

Marks an exchange property to be forwarded as a RabbitMQ message header. Allows type hints to forward the value as i.e. Integer

rabbitMqBrokerList

A list of host/port pairs to use for establishing the initial connection to a RabbitMQ server. Required and must be in the form of host1:port1,host2:port2, etc.

exchange

Name of the RabbitMQ exchange where data should be published. Optional, but if not specified, a nameless exchange is used. In such a case, the routing key becomes the queue name.

routingKey

Optional routing key. However, if a nameless exchange is used, the routing key is required and must be the queue name to use.

authenticationConfigKey

Key from the server configuration used to look up the credentials needed to connect to the RabbitMQ broker. Optional.

defaultContentType

Default content MIME type (e.g. application/json) to set as the content type RabbitMQ message property. The content type can also be defined dynamically by setting the standard contentType exchange property. If both are defined, the exchange property takes precedence over this setting.

If the defined content type has a charset parameter (e.g. application/json; charset=utf-8), then the defined charset will also be used for configuring the content encoding RabbitMQ message property. Note that any content type parameters will not be included in the RabbitMQ content type message property, only the raw content MIME type. I.e. application/json not application/json; charset=utf-8.

Optional.

virtualHost

Name of the RabbitMQ virtual host. Optional.

connectionTimeoutMillis

Connection timeout value. Optional. A default configured value is used if not present.

receiveTimeoutMillis

Socket timeout value. Optional. A default configured value is used if not present.

forwardInput

Whether incoming payload should be passed to the output of the processor. Defaults to false (i.e., input is not forwarded to output).

useEncryptedConnection

Whether to enable encryption for the RabbitMQ session. Optional and not enabled by default. sslAuthenticationConfigKey should be used if the certificate used by the RabbitMQ server is not signed by a trusted cert authority, or another TLS/SSL configuration is required.

sslAuthenticationConfigKey

Key from the server configuration used to look up SSL credentials for server and client authentication. Optional. Only used if the flag useEncryptedConnection is set to true.

name

Optional, descriptive name for the processor.

id

Required identifier of the processor, unique across all processors within the flow. Must be between 3 and 30 characters long; contain only lower and uppercase alphabetical characters (a-z and A-Z), numbers, dashes ("-"), and underscores ("_"); and start with an alphabetical character. In other words, it adheres to the regex pattern [a-zA-Z][a-zA-Z0-9_-]{2,29}.

exchangeProperties

Optional set of custom properties in a simple jdk-format, that are added to the message exchange properties before processing the incoming payload. Any existing properties with the same name will be replaced by properties defined here.

retainPayloadOnFailure

Whether the incoming payload is available for error processing on failure. Defaults to false.

Sub-builders

Name Summary

processingStrategy

Strategy for providing message processing hints to the server. Optional.

externalSystemDetails

Strategy for describing the external system integration. Optional.

circuitBreakerStrategy

Strategy for configuring the processor’s circuit breaker. Optional.

messageLoggingStrategy

Strategy for describing how a processor’s message is logged on the server.

payloadArchivingStrategy

Strategy for archiving payloads.

inboundTransformationStrategy

Strategy that customizes the conversion of an incoming payload by a processor (e.g., string to object). Should be used when the processor’s default conversion logic cannot be used.

Details

Authentication

The authenticationConfigKey property supports secrets of type UserNameAndPassword. See the Secret Types documentation for formatting details.

TLS (SSL) Configuration

The RabbitMQ producer can be configured to use TLS/SSL on the transport level. :imageprefix:

If the target service is using a valid SSL certificate, signed by a trusted CA, there is no need for additional configuration. However, configuration must be provided if you require one of the following features:

  • Providing a client certificate (if requested by the server).

  • Providing a truststore for server certificate validation. This is useful, for example, when the root certificate has not been signed by a trusted CA.

  • Limiting the server certificate to a specified public key.

  • Accepting a self-signed server certificate.

  • Accepting a server certificate issued for a host other than the one being requested.

To enable these features, the sslAuthenticationConfigKey property must be set and point to a secret of type Tls. See the Secret Types documentation for formatting details.

Client Key Store Usage

RabbitMQ supports the following types of client key store usage: