Closed ghost closed 3 years ago
Try using CLIENT_CHANNEL_PROPERTIES
instead of client_channel
.
For example, to set compression level, use this as the key:
spring.cloud.stream.binders.<binder-name>.environment.solace.java.apiProperties.CLIENT_CHANNEL_PROPERTIES.compressionLevel
Or if you're using yaml:
spring:
cloud:
stream:
binders:
<binder-name>:
type: solace
environment:
solace:
java:
apiProperties:
CLIENT_CHANNEL_PROPERTIES:
compressionLevel: 1
SolaceJavaAutoConfigurationBase supports adding properties via the apiProperties configuration item in spring boot, e.g:
spring.cloud.solace.binders.name.environment.apiProperties
I am looking to set compressionLevel to 1, as the default of 0 is severely reducing performance to <200msg/s level.
SolaceJavaAutoConfigurationBase adds a prefix of "jcsmp." to all properties that are in apiProperties before combining them with the autowired properties (from SolaceJavaProperties),
JCSMPClientChannelProperties is built based on any pre-existing "client_channel" properties in the resulting properties, but that is impossible as its based on SolaceJavaProperties (fixed list) and the apiProperties list (with prefixes, so not identified). To add, there are a few connection settings that are possible to set via properties, but not compression level.
Is there another way to set properties like compressionLevel for the spring cloud stream binder?