Эволюция архитектуры программного обеспечения: монолиты, микросервисы, модульные монолиты и будущее

Оглавление Введение Архитектура программного обеспечения претерпела существенную эволюцию за последние десятилетия. Начиная с крупных монолитных приложений на мейнфреймах и заканчивая современными распределенными микросервисами, каждый этап развития решал насущные проблемы своего времени – и зачастую порождал новые. Сегодня инженеры обсуждают не только монолитную и микросервисную архитектуры, но и промежуточные подходы вроде модульных монолитов, а также дальнейшие … —Читать далее—

Loading

Гарантии порядка обработки сообщений в 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