A message broker is a full component that independently handles communication across connected services.
On the other hand, a message queue is one way by which a message broker can handle communication.
That is, message brokers use message queues to hold messages till those messages get consumed.
Message brokers are complex systems.
They can decrypt the message being sent and validate that message’s schema.
Services sending and receiving messages through the broker can use different messaging protocols.
A message broker can convert the sender’s protocol to one that the receiver expects while transmitting the message.
Message queues lack the above capabilities.
A message queue persists messages for the message broker. It does not read the message content. It can’t validate the message schema.
A message queue cannot convert messaging protocols. It keeps messages and allows them to be consumed in the order they were produced.
Some message brokers (like RabbitMQ) can alter the order of messages inside their message queues. These are possible with priority queues.