Backend | Boost
348 subscribers
33 photos
16 links
Заявки принимаются автоматически 🤖

Сложные вещи становятся возможными, когда вы понимаете основы

@sabratito - Главный админ
Реклама: @itprice_list

Ссылка для друга - https://t.me/+Mc_D9mtxKu8zZWFi
Download Telegram
С помощью какого инструмента можно развернуть веб-приложение?
Anonymous Quiz
0%
Redis
2%
MongoDB
95%
Docker
3%
RabbitMQ
4
🔗 Service Mesh vs Service Discovery — в чём разница?

📌 Service Discovery решает задачу: как сервису найти другой сервис?
Он регистрирует все доступные сервисы и их адреса (Consul, Eureka, Etcd). Клиенты сами обращаются в реестр и получают, куда слать запрос.

📌 Service Mesh идёт дальше: это инфраструктурный слой (например, Istio, Linkerd), который берёт на себя не только Service Discovery, но и:
• балансировку трафика
• retries и timeouts
• безопасность (mTLS)
• наблюдаемость (метрики, трейсинг)

⚖️ Разница:
• Service Discovery = «кто и где находится».
• Service Mesh = «как правильно и безопасно общаться между сервисами».

Итого: Discovery — это база, Mesh — это надстройка для продвинутого управления сетью микросервисов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Кто руководствуется принципу «Глупый Консьюмер – Умный Продюсер»?
Anonymous Quiz
76%
Kafka
24%
RabbitMQ
💥 Наша команда сделала для вас БЕСПЛАТНЫЙ КУРС на платформе Stepik «Тест по Python Junior»

🔍 Более 70 ключевых вопросов по основе Python

👉 ЗАЙТИ НА КУРС https://stepik.org/course/253503
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
Что такое Two-Phase Commit (2PC)?

Ответ: это протокол для согласованного выполнения транзакций в распределённых системах, состоящий из двух фаз: prepare и commit.

👍— Знал
🔥— Не знал

#собес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3
📊 Метрики и мониторинг — Prometheus + Grafana в Python-сервисах

В продакшне важно не только, чтобы сервис работал, но и чтобы его можно было наблюдать.
Для этого используют связку Prometheus + Grafana:

🔹 Prometheus — система сбора и хранения метрик (time series data).
🔹 Grafana — дашборды для визуализации этих метрик.

📌 Как это работает:

1. Python-сервис (например, на FastAPI или Django) экспортирует метрики через эндпоинт /metrics.
2. Prometheus периодически делает к нему запросы и собирает данные.
3. Grafana подключается к Prometheus и строит красивые графики.

Пример метрик в FastAPI:

from fastapi import FastAPI
from prometheus_client import Counter, generate_latest

app = FastAPI()

# Счётчик запросов
REQUEST_COUNT = Counter("app_requests_total", "Общее количество запросов")

@app.get("/")
def root():
REQUEST_COUNT.inc()
return {"msg": "Hello, metrics!"}

@app.get("/metrics")
def metrics():
return generate_latest()


📈 В результате можно отслеживать:
— количество запросов
— ошибки
— время ответа
— нагрузку на сервис
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰3
Сервис на FastAPI принимает файлы и загружает их в облачное хранилище. Пользователи жалуются, что загрузка "зависает", а в логах много незавершённых запросов.

Что поможет решить проблему?
Anonymous Quiz
13%
Увеличить таймауты в FastAPI и клиенте, чтобы загрузка всегда ждала до конца
71%
Использовать streaming‑загрузку (читать и писать файл по частям, не держа весь в памяти)
9%
Ограничить размер загружаемых файлов до 10 МБ
7%
Перезапускать сервис каждые 30 минут, чтобы чистить зависшие соединения
👍3
🚀 Что такое облачное хранилище и зачем оно нужно разработчику?

Облачное хранилище — это сервис для хранения файлов и данных в интернете, а не на локальном диске или сервере. Самый известный пример — Amazon S3, но есть и аналоги: Google Cloud Storage, Yandex Object Storage, MinIO.

📦 В чём фишка:
Масштабируемость — хранить можно хоть пару картинок, хоть миллионы видео.
Доступ откуда угодно — файлы доступны через API.
Надёжность — данные автоматически реплицируются (копируются) на несколько серверов.
Интеграция — удобно подключать к бэкенду: загрузка, скачивание, раздача через CDN.

💡 Пример из бэкенда на Python:
• Загрузка аватарок пользователей в облако.
• Хранение логов и резервных копий.
• Раздача больших файлов (видео, архивов) без нагрузки на основной сервер.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
У тебя есть API, которое работает в нескольких дата-центрах. Пользователи жалуются на “мигающие” ошибки: один запрос успешен, другой падает 404. Что может быть причиной?
Anonymous Quiz
18%
Неправильные заголовки CORS
65%
DNS round-robin и рассинхронизация данных
16%
Ошибка в логике Python-кода
0%
Ошибка при gzip-сжатии ответа
👍2
🔗 Что такое Head-of-Line Blocking?

Head-of-Line (HOL) blocking — это проблема, когда один «тормозящий» запрос в сети блокирует выполнение всех остальных.

🔎 Пример:

В HTTP/1.1 внутри одного TCP-соединения запросы выполняются последовательно. Если первый запрос долго обрабатывается, остальные ждут его завершения. В итоге задержка у всех клиентов растёт.

💡 Решение:

HTTP/2 — поддерживает мультиплексирование: несколько запросов могут идти параллельно в одном соединении.

HTTP/3 (QUIC) — использует UDP, где блокировка по одному потоку не мешает другим.

👉 Поэтому современные сервисы всё чаще переходят на HTTP/2/3 — это снижает задержки и улучшает пользовательский опыт.
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Вы разрабатываете систему, необходимо агрегировать метрики производительности с тысяч устройств. Эти метрики должны быть доступны для долгосрочного хранения и последующего анализа. Важно обрабатывать огромные объемы данных. Что подходит для этой задачи?
Anonymous Quiz
69%
Kafka
31%
RabbitMQ
3
📌 Fan-out / Fan-in — паттерны работы с очередями и событиями

В микросервисной архитектуре часто нужно обрабатывать одно событие сразу несколькими сервисами.
Тут помогает паттерн Fan-out — одно сообщение из очереди рассылается во все подписанные сервисы.
Пример: событие "новый заказ" может параллельно обработать сервис уведомлений, биллинга и аналитики.

А вот когда надо собрать результаты с разных воркеров — вступает в игру Fan-in.
Пример: несколько сервисов обрабатывают куски данных, а потом их результаты собираются в один поток.

⚡️ Вместе Fan-out и Fan-in дают гибкость: можно масштабировать обработку и собирать итог без перегрузки одного сервиса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Какое сочетание паттернов помогает сделать REST API безопасным при сбоях сети?
Anonymous Quiz
15%
Fan-out + CDN
48%
Retry Pattern + Idempotency
10%
Bulkhead + Sharding
28%
Shadow Traffic + WebSockets
🔥2
💬 В системе микросервисов сервис A отправляет задачи в очередь, а сервис B их обрабатывает. Иногда сервис B падает, и задачи начинают скапливаться.

Какое решение поможет гарантировать, что задачи не потеряются и будут обработаны?
Anonymous Quiz
6%
Отправлять задачи напрямую по HTTP из A в B без очереди.
67%
Использовать очередь с подтверждением обработки сообщений (ack).
27%
Сохранять задачи в локальный массив в памяти сервиса A.
0%
Удалять все задачи из очереди сразу при получении, даже если B не успел их обработать.
👍3
🔌 WebSockets vs SSE — что выбрать для real-time приложений

Когда нужно передавать данные в реальном времени (чаты, нотификации, трекинг заказов) — выбор часто падает на WebSockets или Server-Sent Events (SSE). Но они решают задачу по-разному 👇

WebSockets

• Двусторонняя связь — клиент и сервер могут отправлять данные друг другу.
• Подходит для интерактивных систем (чаты, онлайн-игры, торговые площадки).
• Работает поверх TCP и требует чуть больше ресурсов (поддерживает постоянное соединение).

SSE (Server-Sent Events)

• Односторонний канал: сервер → клиент.
• Идеален для нотификаций, обновлений данных, live-фидов.
• Использует обычный HTTP, проще масштабируется и поддерживается почти везде.

💡 Главное различие:

WebSocket = “двусторонний диалог”
SSE = “трансляция данных в одну сторону”

🔥 Когда выбирать:

• Реактивные чаты, игры → WebSockets
• Поток уведомлений или обновлений → SSE
🔥4
👍4
🧠 Вышел отличный курс "Тест Middle: Python, PostgreSQL, Redis, GIT" для проверки своего грейда.

Отлично подходит для тех, кто готовится к собеседованию.

⚡️ Свыше 130 вопросов, которые охватывают продвинутые знания по Python, PostgreSQL, Redis и GIT

https://stepik.org/a/254865
https://stepik.org/a/254865
https://stepik.org/a/254865

За промокодом на скидку 20%
пишите сюда
👉 @viviv891
5
Какой принцип использует RabbitMQ?
Anonymous Quiz
69%
FIFO
31%
LIFO
4
📦 Distributed Locks — как синхронизировать процессы в разных узлах?

Когда у тебя несколько инстансов сервиса (например, в Kubernetes или Docker swarm), и каждый может одновременно попытаться изменить одни и те же данные — начинается хаос 🌀

Чтобы этого не произошло, используют распределённые блокировки (Distributed Locks).

🧠 Зачем нужны?
Чтобы гарантировать, что только один процесс выполняет критическую операцию в один момент времени.

🔧 Реализации:

Redis (Redlock) — популярный вариант от автора Redis.
Работает через SET resource_name my_random_value NX PX 30000.
Если удалось поставить — ты владелец.

Etcd / Zookeeper — используют механизмы watch и lease.

PostgreSQL advisory locks — база может быть тоже “lock-сервером”.

⚠️ Главная сложность:
— Нужно учитывать задержки сети и “split brain” — когда сеть рвётся, и два узла думают, что они владеют замком 😬

Решение:
Алгоритм Redlock — требует 3–5 независимых Redis-нод.
Lock считается валидным, если получил большинство подтверждений (quorum).
👍3
Что такое распределённый монолит?

Ответ: Это архитектурный подход, который сочетает элементы монолитного и распределённого приложений. В этом случае приложение разделено на несколько сервисов или модулей, которые могут работать независимо, но всё равно тесно связаны между собой и разрабатываются как единое целое, также имеет общую базу данных.

👍 - Знал
⚡️ - Не знал

#собес
7