Sobes.tech

RPS В среднем 4-5 тысяч RPS, в пике доходило до 12k Но тут важно понимать, что основная нагрузка ложилась на Kafka. Поскольку архитектура асинхронная, на каждое создание объявления мой оркестратор генерировал цепочку из 5–7 событий в разные сервисы проверок. Суммарно мы обрабатывали поток до 30k сообщений в секунду в среднем

Senior
Cloud.ru
12

Что такое nil-канал?

Senior
Spectr
12

Как на системном дизайне показывать модульный монолит на схеме?

Senior
Лига Цифровой ЭкономикиЛига Цифровой Экономики
12

Расскажи про создание overflow-бакетов в map при переполнении

Middle+
WildberriesWildberries
12

Как проверить корректность временного диапазона бронирования (from < to)?

Senior
2gis2gis
11

Построить оптимальный индекс для SELECT * FROM employee WHERE sex = 'm' AND salary > 300000 AND age = 20 ORDER BY created_at

Middle+
OZONOZON
11

Приходилось ли вам убеждать или влиять на кого-то с другой точкой зрения? Как вы формулировали своё сообщение и слушали их?

Senior
Shopfully
11

Написать функцию, которая проверяет, является ли строка палиндромом. Палиндром - последовательность символов, одинаково читающееся в обоих направлениях. Проверять только на символы алфавита a-zA-Za-яА-Я, не учитывать case-sensitive. Input: "isPalindrome" Output: false <p> Input: "А роза упала на лапу Азора" Output: true <p> Input: "Is_s_d_+_ssi" Output: true

Middle
VKVK
11

Был ли случай, когда ты был не согласен с решением руководителя или стейкхолдера?

Senior
I-teco
11

Как устроен интерфейс в Go изнутри (в памяти)?

Middle+
Ozon ФинтехOzon Финтех
11

Работала с OpenTelemetry?

Middle
Small
11

Как ты оптимизировал запросы на практике? Что смотришь, когда ручка тормозит?

Middle+
OZONOZON
11

Чем стек отличается от кучи? Как компилятор решает, куда аллоцировать объект?

Middle+
X5
11

Куда хочешь развиваться в будущем — в техническую или менеджерскую сторону?

Middle+
Штрафов нет
11

Бывало ли у вас, что что-то долго делали, и оно в итоге не было внедрено или отложено в стол?

Senior
Ozon ФинтехOzon Финтех
11

Что такое OpenTelemetry (OTel), зачем это нужно и как выглядит?

Senior
X5 techX5 tech
11

Работал ли с RabbitMQ? Расскажи про Kafka — если 3 партиции и 1 под, как распределяются сообщения?

Middle+
МВидео/эльдорадо
11

Есть HTTP handler, который делает сложный SELECT в базу данных, пользователь недоволен долгим ожиданием. Какова последовательность действий для диагностики и оптимизации?

Senior
ВайлдберрисВайлдберрис
11

Расскажи про реализацию batch-процесса для перерасчёта исторических данных. Зачем каждую ночь пересчитывать? Сколько данных хранили?

Middle+
МВидео/эльдорадо
11

func (c *Client) Send(ctx context.Context, messages []Message, maxWorkers int) error { sem := make(chan struct{}, maxWorkers) var wg sync.WaitGroup var resultErr error var once sync.Once for _, msg := range messages { wg.Add(1) go func(msg Message) { defer wg.Done() sem <- struct{}{} defer func() { <-sem }() body, err := json.Marshal(msg) if err != nil { once.Do(func() { resultErr = err; cancel() }) return } req, _ := http.NewRequestWithContext( ctx, http.MethodPost, c.url, bytes.NewReader(body), ) req.Header.Set("Content-Type", "application/json") resp, err := c.httpClient.Do(req) if err != nil { once.Do(func() { resultErr = err; cancel()}) return } defer resp.Body.Close() if resp.StatusCode >= 500 { once.Do(func() { resultErr = fmt.Errorf("server error") cancel()}) return } c.sentCount.Add(1) time.Sleep(time.Second) }(msg) } wg.Wait() }

Senior
UPSL
11
/371