Архитектура: Kafka представляет собой распределённый журнал сообщений (log), а RabbitMQ — брокер очередей Модель доставки: Kafka передаёт поток данных и долго хранит сообщения; RabbitMQ использует push-модель и…
Различия между producer и consumer в RabbitMQ RabbitMQ — брокер сообщений (message broker), работающий с очередями Producer — компонент, который отправляет, то есть публикует, сообщения в очередь Consumer — компонент,…
Асинхронное взаимодействие через Kafka и синхронное через REST API Модель взаимодействия: Kafka использует асинхронный обмен сообщениями, а REST API — синхронную модель «запрос-ответ» Связанность компонентов: Kafka…
Транзакция представляет собой единый логический набор операций, гарантирующий атомарность и согласованность данных. Batch-insert выполняет массовую вставку записей с помощью одного SQL-запроса, повышая…
В HTTP-клиенте Go тело ответа (resp.Body) необходимо закрывать, чтобы освободить занятые ресурсы Если этого не сделать, возможны утечки памяти и исчерпание файловых дескрипторов Кроме того, соединение в пуле…
Что происходит при попытке изменить неизменяемую переменную внутри функции неизменяемую переменную (const/val) нельзя переназначить или изменить её значение попытка изменения приведёт к синтаксической ошибке…
Redis Pub/Sub и Kafka: в чём разница? Redis Pub/Sub — встроенный в Redis механизм обмена сообщениями Pub/Sub выполняет прямую трансляцию сообщений подписчикам, не сохраняя их Kafka представляет собой распределённую…
Outbox — паттерн, обеспечивающий гарантированную доставку сообщений transactional consistency — согласованность данных и событий, сохраняемых в рамках одной транзакции основная бизнес-сущность и запись события…
Паттерны fan-in и fan-out в конкурентности Go Конкурентность в Go ⬇️ Fan-out — одновременная обработка задач несколькими горутинами Fan-in — объединение результатов работы нескольких горутин в одном канале Fan-out…
Что представляет собой MAC-адрес и для чего он используется? идентифицирует сетевой интерфейс на канальном уровне (OSI Layer 2) является уникальным аппаратным адресом интерфейса размером 48 бит назначается…
Как работает runtime в Go? Go runtime — встроенная среда выполнения, которая обеспечивает конкурентность, сборку мусора, управление памятью и планирование. К его основным компонентам относятся goroutine scheduler,…
Транзакция останется в состоянии ожидающих изменений (pending) Выполненные изменения будут храниться временно и не попадут в БД окончательно После закрытия сессии или выполнения ROLLBACK изменения будут отменены Если…