ККанал Андрея про бекенд

Канал Андрея про бекенд

@andrey_threads💻 Технологии🇷🇺 Русский📅 март 2026 г.

👨🏻‍🎓 Я Андрей Суховицкий - tech lead и лектор Университета ИТМО, @sukhoa 🔥 Темы в канале: kotlin, java, coroutines, многопоточное программирование, system design, реализация высоконагруженных и надежных систем. ⏳ Посты по средам Присоединяйтесь!

📊 Полная статистика📝 Все посты
##threads#interview#metrics_basics#kotlin#highload#architecture#theory#java
1.7K
Подписчики
2.8K
Ср. охват
169.5%
Вовлечённость
20
Постов
~0.1
В день

Графики

📊 Средний охват постов

📉 ERR % по дням

📋 Публикации по дням

📎 Типы контента

Лучшие публикации

20 из 20
Aandrey_threads
andrey_threads
18 авг., 12:42

Ждать вечно не лучший выбор ☠️ Помните задачку про перевод денег с одного аккаунта на другой? Одно из проблемных мест там - возможность взаимной блокировки (deadlock), когда первый поток выполняет перевод с аккаунта с id = 1 на аккаунт с id = 2, а второй поток переводит наоборот со второго на первый аккаунт. Соответственно, может возникнуть ситуация захвата ресурса “крест-накрест”. Один поток захватил блокировку на аккаунт 1 и ждет аккаунта 2, второй поток захватил второй аккаунт и ждет первого....

👁 3.4K
Aandrey_threads
andrey_threads
26 мар., 09:23

Аналог блокирующей очереди для корутин ⛓ В одном из предыдущих постов мы обсуждали удобство использования блокирующий очереди (интерфейс java.util.concurrent.BlockingQueue), для коммуникации между потоками. Одна группа потоков помещают данные в хвост очереди, другая группа получает данные из ее головы. Почему бы нам не использовать такую же очередь для общения корутин друг с другом? 🏈 Дело в том, что операции BlockingQueue могут заблокировать поток исполнения: - Получение элемент...

👁 3.3K
Aandrey_threads
andrey_threads
13 февр., 14:52

Ответ 20 на предыдущий опрос может быть не очевидным с первого взгляда. Мы получаем его, воспользовшись законом Амдала 🧶 Итак, в этом посте будем вычислять ответ ответ, опираясь только на теорию. 🎯 Нам нужно увеличить пропускную способность в 10 раз (с 10 операций в секунду до 100). Кажется, что, если один поток может выполнять 10 операций в секунду, то нам нужно увеличить количество потоков пропорционально, до 10. 🔩 Однако, в данной задаче есть нюанс, который делает рост производительности н...

👁 3.2K
Aandrey_threads
andrey_threads
28 мая, 12:59

🚰 Разбавлю немного череду постов про метрики. 💪 Может быть, вам будет интересно посмотреть доклад Андрея Паньгина о своем детище: профайлере для JVM-based приложений Async-profiler. 🔥 Это не какой-то пет-проект, это развитый тул с большим количеством пользователей. Он много раз помогал нашей команде находить узкие места в рабочих проектах. Дополнительный плюс в том, что async-profiler потребляет сравнительно немного ресурсов. В общем, крутая штука

👁 3.2K
Aandrey_threads
andrey_threads
2 июл., 16:16

Батчинг (пакетная обработка). Часть 2. 🌐 Аналогично батчинг применяют для уменьшения сетевых расходов при HTTP взаимодействии (aka REST API). Проектируя свои сервисы и имея высокие требования по пропускной способности/времени отклика, вы можете предусмотреть использование батчинга. Скажем, у вас есть API для обновления статуса заказа по его id: POST /orders/{orderId}/status Content-Type: application/json { "status": "delivered", "timestamp": "2021-08-01T00:00:00Z" } 🌪 Давайте изменим API таким...

👁 3.2K
Aandrey_threads
andrey_threads
19 февр., 11:36

⬆️ В прошлом посте мы с помощью закона Амдала выясняли, сколько нужно потоков, чтобы ускорить наш код в 10 раз. Полученный ответ, 20 потоков, занял второе место в нашем опросе, но все еще может казаться довольно удивительным. 🧑‍💻 Как и обещал, я провел небольшой эксперимент для проверки теоретических расчетов и постарался найти объяснение полученным на практике результатам. Подробнее об этом, а также о выводах и практических рекомендациях читайте по ссылке

👁 3.2K
Aandrey_threads
andrey_threads
17 мая, 13:59

🟢 Metrics basics - часть 3 🔼 В прошлом посте под вторым пунктом плана значилось "Данные с каждого инстанса помещаются в некое хранилище". ❓ Но как именно метрики "помещаются" в хранилище? Есть два основных пути, по которому идут разработчики: 1️⃣ Клиент (ваш сервис, с которого вы хотите собирать метрики) устанавливает соединение с хранилищем и отправляет ему собранные данные. 2️⃣ Сервис выстявляет (expose) наружу API, с помощью которого можно получить собранные на текущий момент данные, а хран...

👁 3.1K
Aandrey_threads
andrey_threads
5 мар., 10:04

Последний пост из серии "как ускорить функцию task" 😁 ⬆️ Напоминаю, мы с вами задавались вопросом, сколько потребуется потоков, чтобы в 10 раз ускорить функцию task, где 5% кода выполняется под локом. Вычисленный с помощью закона Амдала ответ в 20 потоков был позже поставлен под сомнение практическими экспериментами. Сегодня ставим точку в этой серии постов. 🧱 Предлагаю немного переработать архитектуру данного нам кода: 1. Выделить один отдельный поток, который будет заниматься исключительно п...

👁 3.1K
Aandrey_threads
andrey_threads
11 июн., 15:03

Батчинг (пакетная обработка). Часть 1. 🏛 Ситуация: в моменты повышенной нагрузки время выполнения запросов к БД начинает расти и сказываться на производительности. Профайлер показывает вам, что значительную часть длительности операции занимает ожидание получения JDBC соединения. У вашего приложения уже 20 подключений к базе и больше подключений вам выделять не хотят. Что делать? 🏕 Осознаем природу проблемы: 🎼 Паттерн работы с JDBC подключением следующий 1. Запрашиваем свободное подключение из...

👁 3.0K

Типы хуков

Нейтральный14 | 2.9K просм.
Статистика4 | 2.7K просм.
Провокация1 | 2.5K просм.
Вопрос1 | 2.4K просм.

Длина постов

Очень длинные (1000+)13 | 2.8K просм.
Средние (200-500)3 | 3.0K просм.
Длинные (500-1000)1 | 2.7K просм.

Влияние эмодзи

2.8K
С эмодзи (15)
2.9K
Без эмодзи (5)
-3.6% охвата

Типы контента

📝
20
text
2.8K просм.
Канал Андрея про бекенд (@andrey_threads) — Telegram-канал | PostSniper