AbstractMessageBrokerConfiguration uses ChannelRegistration to setup the following:

  • clientInboundChannel with a thread name prefix of clientInboundChannel-
  • clientOutboundChannel with a thread name prefix of clientOutboundChannel-
  • brokerChannel with a thread name prefix of brokerChannel-

It does so even if the underlying Executor has been externally provided. This is problematic, especially with virtual threads as the same instance is probably shared by all three channels.