Skip to content
Advertisement

Tag: spring-amqp

Is the Jackson2JsonMessageConverter class thread-safe?

I’m using this class and I’m wondering whether it’s thread safe: https://docs.spring.io/spring-amqp/api/org/springframework/amqp/support/converter/Jackson2JsonMessageConverter.html The docs don’t make any claims about this. I skipped through the code and found no signs it’s not thread-safe. It’s using an ObjectMapper internally, which is thread-safe according to docs: https://fasterxml.github.io/jackson-databind/javadoc/2.13/com/fasterxml/jackson/databind/ObjectMapper.html Mapper instances are fully thread-safe provided that ALL configuration of the instance occurs before ANY read

Does Spring AMQP CorrelationData getFuture wait indefinitely without timeout?

In the context of Publisher confirms, when waiting for the CorrelationData’s future (SettableListenableFuture#get()) – does it wait indefinitely or is there a timeout configured under the water? Answer It does wait indefinitely. There is just no any opinion and everything is delegated directly to the java.util.concurrent.FutureTask internally in the org.springframework.util.concurrent.SettableListenableFuture implementation. Not sure why the question, but in normal situation

What kind of threading model changes led to DMLC

The doc explains why DMLC was introduced in version 2: https://docs.spring.io/spring-amqp/reference/html/#choose-container This architecture was required because, in early versions of the RabbitMQ client, multiple concurrent deliveries were not possible. Newer versions of the client have a revised threading model and can now support concurrency. This has allowed the introduction of the DMLC where the listener is now invoked directly on

Rabbit MQ doesn’t flush acks?

The problem appeared in logs: Consumer failed to start in 60000 milliseconds; does the task executor have enough threads to support the container concurrency? We try to open handlers for like 50 queues dynamically by SimpleMessageListenerContainer.addQueueNames(), then application is started. It consumes some messages, but the RabbitMQ admin panel shows that they are unacked. After a significant amount of time,

Dynamically configure RabbitMQ users and permissions with Java Spring AMQP

For security reasons, I want to configure separate user accounts with specific permissions to isolates queues in RabbitMQ. As users need to be a dynamic (adding new, removing deactivated…) I would like to achieve this with Java Spring AMQP. Creating queues, exchanges and bindings is possible with The RabbitMQ Management HTTP API provides also features regarding the user management, as

Synchronous publish for rabbitmq

I want to have two sets API for the clients to publish messages sync send(no retry, fail immediately and send status back to the clients synchronously) async send (publisher and confirm callback, with retry, log and drop the message after certain retries). I am able to implement this by enabling confirm and return. Is there any way to implement Synchronous

How to configure separately both consumer and producer spring boot app when using rabbitmq?

I watched a tutorial that explains how to integrate RabbitMQ into Spring Boot app. In the tutorial, the ReceiveMessageHandler.java (Consumer) and SendMessageController.java (Producer) classes were in the same project. I want to implement them in two different Spring Boot application. However I can’t split the tutorial project into two consumer and producer project because of the ConfigureRabbitMq class. Because it

When publisher confirms are enabled, queue length limit is set and overflow is set to reject-publish,why cause in confirm callback I received is null?

I am learning Queue Length Limit(https://www.rabbitmq.com/maxlength.html), as it says, queue is set to ‘x-max-length:10’,and ‘x-overflow:reject-publish’, and also, I enable publisher confirms. So, when the number of messages in the queue reaches 10, the publisher will be informed of the reject via a basic.nack message. And it is: my confirm callback got a false ack, but cause is null. I’m wondering

Advertisement