Sobes.tech

Сколько потоков запустит планировщик Go? И конкретно на AMD EPYC с 64 ядрами и 128 потоками?

Middle+
МВидеоМВидео
6

Проектирование масштабируемого мессенджера с поддержкой 150 млн пользователей, 75 млн DAU, 225 млн MAU, 1.2M read / 300k write peak QPS, 5 млн одновременных пользователей, 60 PB новых данных в год, рост 30% в год, SLA 99.95%, p99 <200 мс для чтения, <300 мс для записи. КОНТЕКСТ Необходимо спроектировать распределённую систему мессенджера, аналогичную WhatsApp, которая поддерживает как 1:1, так и групповые чаты, обеспечивает доставку сообщений, отображение online-статусов пользователей и передачу мультимедийных файлов (фото, видео, аудио). Система должна обеспечивать высокую доступность и низкую задержку, выдерживать высокий параллелизм и масштабироваться на глобальном уровне. ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ - Поддержка личных (1:1) и групповых чатов с возможностью добавления/удаления участников - Отправка и получение текстовых сообщений и мультимедийных файлов НЕ ВИДНО ЯВНОЙ РЕАЛИЗАЦИИ МЕХАНИЗМА end-to-end шифрования на уровне сервисов или клиентов, кроме общей аннотации. - Отсутствует явное описание шардингов и репликаций баз данных по chat_id или user_id для масштабируемости и отказоустойчивости. - Нет явного компонента или механизма для обработки офлайн-синхронизации сообщений и delivery receipts. - Не прослеживается, как реализуется балансировка нагрузки между базами данных и сервисами, особенно при пиковых нагрузках. **Узкие места, на которые стоит обратить внимание:**

Senior
Яндекс
6

Спроектируйте SQL схему для банковской системы с таблицами accounts и transactions. Какие ограничения и индексы необходимы?

Middle+
ООО Дэстэн Партнерс
6

Что такое reverse proxy и что обычно используют?

Senior
purweb
6

Ты сам что-нибудь описывал для observability — метрики, алерты?

Senior
VK Live
6

Расскажите о телеметрии.

Senior
МТСМТС
6

Что выведет программа? func a() { x := []int{} x = append(x, 0) x = append(x, 1) x = append(x, 2) y := append(x, 3) z := append(x, 4) fmt.Println(y, z) } func main() { a() }

Senior
OZONOZON
6

Что такое init-контейнеры и sidecar-контейнеры?

Senior
SelectelSelectel
6

Предложите индекс для таблицы users с полями gender и age, если нужно выбирать пользователей по полу или возрасту

Middle
VKVK
6

package main import "fmt" type Person struct { Name string } func changeName(person *Person) { person = &Person{ Name: "Alice", } } func main() { person := &Person{ Name: "Bob", } fmt.Println(person.Name) // changeName(person) fmt.Println(person.Name) // }

Senior
Бюро 1440Бюро 1440
6

Live coding: добавить таймаут в функцию — если выполнение превышает 1 секунду, вернуть ошибку. Использование select, time.After, context.

Middle+
Веро Трейс
6

Чем HTTPS отличается от HTTP?

Middle+
Бюро 1440Бюро 1440
6

Что такое garbage collector в Go?

Senior
VKVK
6

Сколько у тебя общего опыта в IT в коммерческом плане?

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

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

Senior
Яндекс
6

Сколько коннекшенов было на Postgres?

Senior
МВидео/эльдорадо
6

Для тебя офис 5 дней в неделю — это окей?

Middle+
Гоуланг
6

type TTLCache interface { Set(k string, v any, ttl time.Duration) Get(k string) (any, bool) Del(k string) bool } // Не должно утекать по памяти // гет не должен отдавать просрочку //реализация

Senior
X5
6

Привезли 20 мясорубок, 5 отгрузили — сколько осталось на складе и каково актуальное состояние в системе?

Senior
МВидеоМВидео
6

Расскажите разницу между WebSocket и SSE, и кейсы использования каждого.

Senior
Алабуга
6
/368