3232@ Import (BrokerConfigProps .class )
3333public class RabbitMqConfig {
3434
35+ private static final String LISTENER_TYPE = "listener" ;
36+
37+ private static final String SENDER_TYPE = "sender" ;
38+
39+
3540 @ Value ("${app.async.flux.maxConcurrency:250}" )
3641 private Integer maxConcurrency ;
3742
@@ -41,14 +46,15 @@ public class RabbitMqConfig {
4146 @ Bean
4247 public ReactiveMessageSender messageSender (ConnectionFactoryProvider provider , MessageConverter converter ,
4348 BrokerConfigProps brokerConfigProps , RabbitProperties rabbitProperties ) {
44- Mono <Connection > senderConnection = createSenderConnectionMono (provider .getConnectionFactory (), "sender" );
45- ChannelPoolOptions channelPoolOptions = new ChannelPoolOptions ();
49+ final Mono <Connection > senderConnection =
50+ createConnectionMono (provider .getConnectionFactory (), appName , SENDER_TYPE );
51+ final ChannelPoolOptions channelPoolOptions = new ChannelPoolOptions ();
52+ final PropertyMapper map = PropertyMapper .get ();
4653
47- PropertyMapper map = PropertyMapper .get ();
4854 map .from (rabbitProperties .getCache ().getChannel ()::getSize ).whenNonNull ()
4955 .to (channelPoolOptions ::maxCacheSize );
5056
51- ChannelPool channelPool = ChannelPoolFactory .createChannelPool (
57+ final ChannelPool channelPool = ChannelPoolFactory .createChannelPool (
5258 senderConnection ,
5359 channelPoolOptions
5460 );
@@ -60,8 +66,9 @@ public ReactiveMessageSender messageSender(ConnectionFactoryProvider provider, M
6066
6167 @ Bean
6268 public ReactiveMessageListener messageListener (ConnectionFactoryProvider provider ) {
63- final Mono <Connection > connection = createSenderConnectionMono (provider .getConnectionFactory (), "listener" );
64- Receiver receiver = RabbitFlux .createReceiver (new ReceiverOptions ().connectionMono (connection ));
69+ final Mono <Connection > connection =
70+ createConnectionMono (provider .getConnectionFactory (), appName , LISTENER_TYPE );
71+ final Receiver receiver = RabbitFlux .createReceiver (new ReceiverOptions ().connectionMono (connection ));
6572 final Sender sender = RabbitFlux .createSender (new SenderOptions ().connectionMono (connection ));
6673
6774 return new ReactiveMessageListener (receiver , new TopologyCreator (sender ), maxConcurrency );
@@ -93,9 +100,9 @@ public MessageConverter messageConverter(ObjectMapperSupplier objectMapperSuppli
93100 return new JacksonMessageConverter (objectMapperSupplier .get ());
94101 }
95102
96- Mono <Connection > createSenderConnectionMono (ConnectionFactory factory , String name ) {
103+ Mono <Connection > createConnectionMono (ConnectionFactory factory , String connectionPrefix , String connectionType ) {
97104 final Scheduler senderScheduler = Schedulers .elastic ();
98- return Mono .fromCallable (() -> factory .newConnection (appName + " " + name ))
105+ return Mono .fromCallable (() -> factory .newConnection (connectionPrefix + " " + connectionType ))
99106 .doOnError (err ->
100107 log .log (Level .SEVERE , "Error creating connection to RabbitMq Broker. Starting retry process..." , err )
101108 )
0 commit comments