What is Messaging?
Synchronous Messaging is implemented when such that the messaging client sends a message and expects the response immediately. So the sender client waits for the response before he can execute the next task. So until and unless the message is recieved the sender is blocked.
RabbitMQ - Table Of ContentsWhat is Messaging? Getting Started with RabbitMQ - Install and start RabbitMQ. Spring Boot + RabbitMQ Publish Message Example Spring Boot + RabbitMQ Tutorial - Configure Listeners to consume messages using MessageListenerContainer Spring Boot + RabbitMQ Consume Message Example using RabbitListener Spring Boot + RabbitMQ Tutorial - Implement Exchange Types Spring Boot + RabbitMQ Tutorial - Retry and Error Handling Example Spring Cloud Stream - RabbitMQ Publish Message Example Spring Cloud Stream - RabbitMQ Consume Message Example Pivotal Cloud Foundry Tutorial - Deploying Spring Boot + RabbitMQ Application to PCF
Asynchronous Messaging is implemented such that the messaging client sends a message and does not expect the response immediately. So the sender client does not for the response before he can execute the next task. So the sender is not blocked.
Real time systems usually have a combination of syschronous and ascynchronous communication
Message Broker - are responsible for establishing connections with various client systems. Let us consider role of Message Broker in a telecom system. Suppose initially there is no message broker. Then each telephone connection will have a direct line with all other telephone connections.
Suppose tomorrow if another telephone connection needs to be added, then all existing telephone connections will need to get a direct line with this new telephone connection. As more connections are added this will get more complicated.
With Message broker all connections are registered with Message Broker. So all connections only need to connect to the message broker. It will automatically route the message to the correct client based on some message configuration.