🎄 Happy Holidays! 🥳
Most of Solace is closed December 24–January 1 so our employees can spend time with their families. We will re-open Thursday, January 2, 2024. Please expect slower response times during this period and open a support ticket for anything needing immediate assistance.
Happy Holidays!
Please note: most of Solace is closed December 25–January 2, and will re-open Tuesday, January 3, 2023.
Custom Queue Names when using Spring Cloud Stream binder for Solace PubSub+
The Spring Expression Language (SpEL for short) is a powerful expression language that supports querying and manipulating an object graph at runtime. In Solace Binder, we can use the SpEL to specify queue name expressions to generate custom queue names.
Not all properties present in the application configuration are available for use while constructing a SpEL expression. Here is a list of supported context variables available for use in the expression.
The properties.solace
and properties.spring
throws open all the properties defined spring.cloud.stream.bindings.<binder_name>.consumer
and spring.cloud.stream.solace.bindings.<binder_name>.consumer
for use in the SpEL expression.
Consider an example configuration.
spring: cloud: function: definition: uppercase stream: bindings: uppercase-in-0: destination: manualackqueue binder: solace-broker group: myconsumergroup consumer: concurrency: 1 max-attempts: 3 uppercase-out-0: destination: uppercase/topic binder: solace-broker binders: solace-broker: type: solace environment: solace: java: host: 'tcp://xxxx:55554' msgVpn: default clientUsername: default clientPassword: default connectRetries: -1 reconnectRetries: -1 solace: bindings: uppercase-in-0: consumer: provisionDurableQueue: true queueNamePrefix: QNAME errorMsgTtl: 10000 queueNameExpression: "'QUEUE-' + \ properties.solace.queueNamePrefix.toString() + '-' + \ properties.spring.concurrency.toString() + '-' + \ properties.spring.maxAttempts.toString() + '-' + \ properties.solace.errorMsgTtl.toString() + '-' + \ (properties.solace.provisionDurableQueue ? 'AUTO' : 'MANUAL')"
This will produce the following custom queue name:
QUEUE-QNAME-1-3-10000-AUTO
Note: Custom properties are not supported in the SpEL expression.
For more information on custom names for queues and error queues, refer to this blog Custom Name for your Queues when using Spring Cloud Stream Binder for Solace PubSub+