Check the status of
spring-cloud-broker-worker app. If it's not working, fixing it is out of the scope of this article.
If it's working and you confirm the SCS worker didn't receive the message by checking worker logs, the problem is with the RabbitMQ cluster.
Open the RabbitMQ Management UI as explained
here, and check the status of the cluster. It's highly probable that connections are being blocked due to a disk or memory alarm being triggered. Identify the cause of the resource being overused and release it.
For example, a queue with no consumers that has grown until the free disk space drops below a configured limit (50 MB by default). This triggers an alarm and all producers are blocked. Once the messages of the queue are consumed or the queue is purged, the alarm will be cleared, producers unblocked and the
spring-cloud-broker app will start working again.
In order to avoid this issue in the future there are two recommendations to follow:
- If you are using a RabbitMQ Pre-Provisioned service plan with Spring Cloud Services, then switch to an On-Demand RabbitMQ service plan. This will prevent other clients from filling up any resource.
- The other is to upgrade to SCS 3.x where there is no longer a dependency on RabbitMQ.