170 похожих чатов

Всем привет. Подскажите как сделать высокопроизводительный Rest API (>10000 rps)

на Springboot? Читать и писать из/в бд

35 ответов

20 просмотров

сначала можно найти кто не тянет эту нагрузку в цепочке веб - парсинг - процессинг - БД и оптимизировать этот компонент

Если дело в бд - не пиши в бд

сделай сначала на 1 тпс, а потом масштабируй

Andy- Автор вопроса
Alexander Komarov
сделай сначала на 1 тпс, а потом масштабируй

А как? Смутно представляю, что можно в докер и потом в кубернетес засунуть несколько инстансов.

Andy
А как? Смутно представляю, что можно в докер и пот...

слушай, это пет проект или боевой? если боевой - лучше сразу иди к менеджеру и говори что ты его не потянешь, нужен нормальный проектировщик

Andy- Автор вопроса
Alexander Komarov
слушай, это пет проект или боевой? если боевой - л...

Это домашка к собеседованию. Я уже написал все, но как масштабировать не знаю, тк не сталкивался

Andy
Это домашка к собеседованию. Я уже написал все, но...

на кого собес? проектировать апи на 10к рпс это уже сеньор. от миддла я бы максимум что-то такое примерное набросать требовал. ну да, кеш использовать, в бд писать батчами. шардировать базу и вот это все.

Andy
На мидла

ну и набросай примерную картинку. никто миддла не будет сильно докапывать арихтектурой. его дело код писать, чтобы не совсем говно было. а архитектуру ему обычно сверху спускают.

Aleksey Fomichev
А джунам тогда что делать?

баги, тесты и что попроще из задачек

Andy- Автор вопроса
Alexander Komarov
ну и набросай примерную картинку. никто миддла не ...

Так что говорить? Кеш, батч и шрадирование?

Andy
Так что говорить? Кеш, батч и шрадирование?

да хз, зависит от, вводных немного. можно всех игроков и все партии в одну базу засунуть. если там есть хорошее разделение по какому-то признаку (территория, уровень игроков, еще что-то) то можно шардировать. сделай самую простую картинку, типа балансировщик -> несколько инстансов апишки -> система хранения данных (кэш + база)

Andy
Это домашка к собеседованию. Я уже написал все, но...

Ну реактивный веб в Спринге точно потянет 10к. А состояние игры можно хоть в редисе хранить

24/7 🎸
Ну реактивный веб в Спринге точно потянет 10к. А с...

К тому же так можно и базу положить. Реактивщина спасает от нагрузки сам сервис, но не базу. В случае больше нагрузки - шарды. А если писать через кеш (не пробовал так делать) реактивно, то тогда может быть )

Aleksey Fomichev
К тому же так можно и базу положить. Реактивщина с...

У Редиски скорость вполне себе. Там можно все и хранить, все состояния

Aleksey Fomichev
А если память тютю?

А куда там память расходовать?) доска, ходы?

24/7 🎸
А куда там память расходовать?) доска, ходы?

Траффик вырос, мульон пользователей зашло

24/7 🎸
Ну зашло) и что?))

Память кончилась

Aleksey Fomichev
Память кончилась

640к должно хватить всем :))

24/7 🎸
640к должно хватить всем :))

Не предусмотреть вариант что она кончится очень опрометчиво

Надо копать вглубь твою задачу По либам Бери aerospike для бд или redis или тарантул. Sql брать только если ну никак без него. Sql всегда медленнее из за acid заложенного в движок. По http бери rapidoid или vert.x

Ig
Надо копать вглубь твою задачу По либам Бери aeros...

- Как сделать высоконагруженный сервис на Спринге? - Легко, делай на вертексе)

Ig
Надо копать вглубь твою задачу По либам Бери aeros...

Простите, оффтопик: часто сейчас тарантул не в мейловых проектах встречается?

Александр Беляев
Простите, оффтопик: часто сейчас тарантул не в мей...

Я его тестил Он показался хорош Но в нем в 16 году не было норм шардинга

Ig
Я его тестил Он показался хорош Но в нем в 16 году...

Любопытно... У меня в голове это всё ещё очень локальный мейловый проект

Вполне

в вертикcе есть поддержка rx java

реактивные стримы же

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта