С помощью какого инструмента можно развернуть веб-приложение?
Anonymous Quiz
0%
Redis
2%
MongoDB
95%
Docker
3%
RabbitMQ
⚡4
Он регистрирует все доступные сервисы и их адреса (Consul, Eureka, Etcd). Клиенты сами обращаются в реестр и получают, куда слать запрос.
• балансировку трафика
• 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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Ответ:
#собес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3
В продакшне важно не только, чтобы сервис работал, но и чтобы его можно было наблюдать.
Для этого используют связку 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
Anonymous Quiz
13%
Увеличить таймауты в FastAPI и клиенте, чтобы загрузка всегда ждала до конца
71%
Использовать streaming‑загрузку (читать и писать файл по частям, не держа весь в памяти)
9%
Ограничить размер загружаемых файлов до 10 МБ
7%
Перезапускать сервис каждые 30 минут, чтобы чистить зависшие соединения
👍3
Облачное хранилище — это сервис для хранения файлов и данных в интернете, а не на локальном диске или сервере. Самый известный пример — Amazon S3, но есть и аналоги: Google Cloud Storage, Yandex Object Storage, MinIO.
📦 В чём фишка:
• Масштабируемость — хранить можно хоть пару картинок, хоть миллионы видео.
• Доступ откуда угодно — файлы доступны через API.
• Надёжность — данные автоматически реплицируются (копируются) на несколько серверов.
• Интеграция — удобно подключать к бэкенду: загрузка, скачивание, раздача через CDN.
• Загрузка аватарок пользователей в облако.
• Хранение логов и резервных копий.
• Раздача больших файлов (видео, архивов) без нагрузки на основной сервер.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Anonymous Quiz
18%
Неправильные заголовки CORS
65%
DNS round-robin и рассинхронизация данных
16%
Ошибка в логике Python-кода
0%
Ошибка при gzip-сжатии ответа
👍2
Head-of-Line (HOL) blocking — это проблема, когда один «тормозящий» запрос в сети блокирует выполнение всех остальных.
В HTTP/1.1 внутри одного TCP-соединения запросы выполняются последовательно. Если первый запрос долго обрабатывается, остальные ждут его завершения. В итоге задержка у всех клиентов растёт.
HTTP/2 — поддерживает мультиплексирование: несколько запросов могут идти параллельно в одном соединении.
HTTP/3 (QUIC) — использует UDP, где блокировка по одному потоку не мешает другим.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Вы разрабатываете систему, необходимо агрегировать метрики производительности с тысяч устройств. Эти метрики должны быть доступны для долгосрочного хранения и последующего анализа. Важно обрабатывать огромные объемы данных. Что подходит для этой задачи?
Anonymous Quiz
69%
Kafka
31%
RabbitMQ
❤3
В микросервисной архитектуре часто нужно обрабатывать одно событие сразу несколькими сервисами.
Тут помогает паттерн Fan-out — одно сообщение из очереди рассылается во все подписанные сервисы.
Пример: событие "новый заказ" может параллельно обработать сервис уведомлений, биллинга и аналитики.
А вот когда надо собрать результаты с разных воркеров — вступает в игру Fan-in.
Пример: несколько сервисов обрабатывают куски данных, а потом их результаты собираются в один поток.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Anonymous Quiz
15%
Fan-out + CDN
48%
Retry Pattern + Idempotency
10%
Bulkhead + Sharding
28%
Shadow Traffic + WebSockets
🔥2
Anonymous Quiz
6%
Отправлять задачи напрямую по HTTP из A в B без очереди.
67%
Использовать очередь с подтверждением обработки сообщений (ack).
27%
Сохранять задачи в локальный массив в памяти сервиса A.
0%
Удалять все задачи из очереди сразу при получении, даже если B не успел их обработать.
👍3
❓ Что произойдёт с сетью, если не будет механизма TCP congestion control?
Anonymous Quiz
10%
Соединение станет быстрее
70%
Может случиться перегрузка сети (network collapse)
10%
Ошибки будут исправляться автоматически
10%
Пакеты будут всегда приходить по порядку
⚡4
🔌 WebSockets vs SSE — что выбрать для real-time приложений
Когда нужно передавать данные в реальном времени (чаты, нотификации, трекинг заказов) — выбор часто падает на WebSockets или Server-Sent Events (SSE). Но они решают задачу по-разному 👇
WebSockets
• Двусторонняя связь — клиент и сервер могут отправлять данные друг другу.
• Подходит для интерактивных систем (чаты, онлайн-игры, торговые площадки).
• Работает поверх TCP и требует чуть больше ресурсов (поддерживает постоянное соединение).
SSE (Server-Sent Events)
• Односторонний канал: сервер → клиент.
• Идеален для нотификаций, обновлений данных, live-фидов.
• Использует обычный HTTP, проще масштабируется и поддерживается почти везде.
💡 Главное различие:
WebSocket = “двусторонний диалог”
SSE = “трансляция данных в одну сторону”
🔥 Когда выбирать:
• Реактивные чаты, игры → WebSockets
• Поток уведомлений или обновлений → SSE
Когда нужно передавать данные в реальном времени (чаты, нотификации, трекинг заказов) — выбор часто падает на WebSockets или Server-Sent Events (SSE). Но они решают задачу по-разному 👇
WebSockets
• Двусторонняя связь — клиент и сервер могут отправлять данные друг другу.
• Подходит для интерактивных систем (чаты, онлайн-игры, торговые площадки).
• Работает поверх TCP и требует чуть больше ресурсов (поддерживает постоянное соединение).
SSE (Server-Sent Events)
• Односторонний канал: сервер → клиент.
• Идеален для нотификаций, обновлений данных, live-фидов.
• Использует обычный HTTP, проще масштабируется и поддерживается почти везде.
💡 Главное различие:
WebSocket = “двусторонний диалог”
SSE = “трансляция данных в одну сторону”
🔥 Когда выбирать:
• Реактивные чаты, игры → WebSockets
• Поток уведомлений или обновлений → SSE
🔥4
Что произойдёт, если внутри async def функции написать обычный time.sleep(2) вместо await asyncio.sleep(2)?
Anonymous Quiz
13%
Всё отработает быстрее, потому что time.sleep написан на C
42%
Event loop зависнет на 2 секунды
13%
Обе функции выполнятся параллельно
31%
Ошибка выполнения
👍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
Отлично подходит для тех, кто готовится к собеседованию.
⚡️ Свыше 130 вопросов, которые охватывают продвинутые знания по Python, PostgreSQL, Redis и GIT
https://stepik.org/a/254865
https://stepik.org/a/254865
https://stepik.org/a/254865
За промокодом на скидку 20%
пишите сюда 👉 @viviv891
❤5
⚡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).
Когда у тебя несколько инстансов сервиса (например, в 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