Гарантии порядка обработки сообщений в Apache Kafka

Оглавление Введение Порядок обработки сообщений – критически важный аспект распределенных систем. Особенно это актуально при обмене событиями между микросервисами, где последовательность событий может влиять на корректность бизнес-логики (например, события о транзакциях, изменениях состояния и т.д.). Apache Kafka, будучи распределенной системой обмена сообщениями, предоставляет определенные гарантии порядка сообщений. Однако при горизонтальном масштабировании потребителей (консьюмеров) и отказоустойчивой … —Читать далее—

Loading

Быстрые API: как gRPC и Protobuf решают ограничения HTTP/1.1

Оглавление Введение HTTP/1.1 долгие годы оставался основой веб-взаимодействия, позволяя клиентам и серверам обмениваться текстовыми сообщениями (например, в формате JSON) по протоколу HTTP поверх TCP. Однако со временем выявились ключевые ограничения HTTP/1.1 – в частности, отсутствие эффективного мультиплексирования запросов и проблема HOL (Head-of-Line Blocking). Эти недостатки негативно сказываются на производительности и задержках при передаче данных. В … —Читать далее—

Loading

Нагрузочное тестирование и профилирование JVM

Оглавление Введение Нагрузочное тестирование и профилирование – критически важные этапы разработки Java-приложений на Spring Boot. Эти процессы позволяют выявить узкие места производительности и понять, как приложение ведет себя под нагрузкой. Главная цель данной статьи – дать практическое руководство с необходимой теоретической базой, чтобы backend-разработчик полностью понял процесс нагрузочного тестирования и профилирования Spring Boot приложений, и … —Читать далее—

Loading

Работа с конфигурациями в современных системах

Оглавление Введение В современном микросервисном приложении сервисы часто зависят от внешних ресурсов: баз данных, брокеров сообщений, сервисов сторонних поставщиков (платежи, email, API и пр.). Возникает вопрос – как запускать один и тот же сервис в разных средах (dev, test, staging, production) без изменения кода? Решением служит паттерн внешней конфигурации (externalized configuration). Его суть в том, … —Читать далее—

Loading

Паттерн API Gateway в распределенных системах

Оглавление Введение Переход от монолитной архитектуры к микросервисной приносит новые задачи: приложения разделяются на множество мелких сервисов, каждый со своим API. Клиентам зачастую приходится вызывать сразу несколько сервисов, чтобы собрать данные для одной операции. Например, страница продукта в интернет-магазине может требовать данные из сервисов информации о товаре, цен, отзывов, наличия на складе и т.д. Без … —Читать далее—

Loading