Что такое брокер сообщений

«Что такое брокер сообщений» — вопрос из категории Брокеры сообщений, который задают на 26% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Брокер сообщений — это промежуточное ПО, которое обеспечивает асинхронный обмен сообщениями между компонентами системы. Он принимает, хранит, маршрутизирует и доставляет сообщения от отправителей к получателям, обеспечивая надежность, масштабируемость и декомпозицию сервисов.

Примеры брокеров: RabbitMQ, Kafka, NATS.

Пример на Go с RabbitMQ:

conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
ch, err := conn.Channel()
q, err := ch.QueueDeclare("hello", false, false, false, false, nil)
err = ch.Publish("", q.Name, false, false, amqp.Publishing{
    ContentType: "text/plain",
    Body:        []byte("Hello, world!"),
})

Плюсы:

  • Асинхронность
  • Буферизация нагрузки
  • Развязка сервисов

Минусы:

  • Дополнительная инфраструктура
  • Задержки доставки
  • Сложность отладки