powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / акка или кафка?
25 сообщений из 192, страница 1 из 8
акка или кафка?
    #39978411
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такая задача. есть приложенька.
как обычно слева юзеры посередке бэк справа постгрес.
логика приложения проста - юзер приходит с данными, бэк по ним что-то там считает-собирает с разных источников - выдает ответ юзеру и параллельно сохраняет результат в базу если вдруг когда-нибудь юзер захочет эти данные пересмотреть.

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

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

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

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

итого я пока имею по одному плюсу для каждого подхода и по одному минусу:
+акка: она уже есть, минимум накладных расходов на рефакторинг.
-акка: без понятия как мониторить очередь или че там, без понятия как ее тротлить если база дохнет. без понятия как сбросить очередь куда-нибудь если сервис в ребут ушел (данные не особо критичные, но терять их не очнеь желательно все-равно)
+кафка: полноценная очередь, все смотрится мониторится, кучи настроек, ничего не теряется вроде как.
-кафка: надо тащить новый инструмент, надо делать рефак глубже. а на выходе все ее плюшки в противовес акки может и не понадобятся вовсе :)
...
Рейтинг: 0 / 0
акка или кафка?
    #39978422
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько инсертов в минуту?
...
Рейтинг: 0 / 0
акка или кафка?
    #39978434
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Сколько инсертов в минуту?

600 в секунду и всё заваливается.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978435
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
andreykaT,у нас это реализовано через отельный сервис в микросервистой архитектуре

сервис 1- общается с клиентом + бизнес логика

сервис 2 - общается с сервис 1 и бд

естественно сообщения между сервис1 и сервис 2 происходят по кафке ,которую ты можешь настроить так чтобы твоя база не падала например в пиковое время

это всё равботает до тех пор пока тебе клиенту скажем не надо вернуть айдиху сущности которую назначает база.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978449
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
andreykaT
пропущено...

это всё равботает до тех пор пока тебе клиенту скажем не надо вернуть айдиху сущности которую назначает база.

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

клиенту возможно нужен айди чтоб создать новую сущность которая имеет связь с ранее созданной и сохраненной.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978452
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
andreykaT

клиенту возможно нужен айди чтоб создать новую сущность которая имеет связь с ранее созданной и сохраненной.

ну так в чем проблема кидай в кэш и в бд пиши

в твоей схеме айди не будте получен пока его не отдаст бд. что в кэш кидать будем? сущность без айди по которому к ней можно было бы обратиться?
...
Рейтинг: 0 / 0
акка или кафка?
    #39978480
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
mayton
Сколько инсертов в минуту?

600 в секунду и всё заваливается.

А там commit нужен через каждую вставку?

600 в секунду это не очень много. На tpc тестах 2010 года например oracle показывал 250 000 в секунду.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978492
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я хз. у меня в реальном трафике ж еще и селекты. селекты плюс инсерты инсерты где то треть. как обычно но там и парой тысяч не пахнет. железка неплохая. а ты про 250к говоришь.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978493
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
andreykaT,тоода включай батчинг

600 запросов разбивай по 40 грубо говоря вместо 600 инсертов получишь 15

какой батчинг? я не с файлика данные копирую.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978500
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей. Ради Христа.

Если ты просто хочешь внедрять, мать ее кафку или Акку - внедряй!

Но не надо подводить под это основание бедный Postgres который ни в чем не виноват.

Я тебя прошу
...
Рейтинг: 0 / 0
акка или кафка?
    #39978513
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
andreykaT
пропущено...

600 в секунду и всё заваливается.

А там commit нужен через каждую вставку?

600 в секунду это не очень много. На tpc тестах 2010 года например oracle показывал 250 000 в секунду.

А подробности про 250000 в секунду можно?
...
Рейтинг: 0 / 0
акка или кафка?
    #39978517
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
mayton
пропущено...

А там commit нужен через каждую вставку?

600 в секунду это не очень много. На tpc тестах 2010 года например oracle показывал 250 000 в секунду.

А подробности про 250000 в секунду можно?


Кафка свободно держит, правда туда бабла немеряно было влито. Кластер стоял на сорока серверах.

Вот что пишет Амазон по этому поводу

авторThat's a three broker cluster with 1-2 CPU (depending on the cloud) and 4GB RAM per instance. On Amazon Web Services, this plan handled about 135,000 messages per second while the same plan on Google Cloud Platform and Azure handled around 70,000.

У меня есть даже статья в блоге как мы делали нагрузку
https://vyatkins.wordpress.com/2016/07/30/velociraptor/ к слову сказать статья довольно древняя.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978518
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
mayton
пропущено...

А там commit нужен через каждую вставку?

600 в секунду это не очень много. На tpc тестах 2010 года например oracle показывал 250 000 в секунду.

А подробности про 250000 в секунду можно?

Раньше я находил инфу о бенчмарках вот на этом ресурсе http://www.tpc.org/

К сожалению он сейчас в отключке и судьба его мне не известна.

Собственно чорт с ним. Мы можем найти любой другой бенчмарк транзакций в секунду
для трехзвенок где 2-3 звенья будут Java-Postgres или Java-ЛюбаяDBMS просто для сравнения.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978519
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что там за железо чтоб тащить 250ксек?
Майтон я все понимаю за постгрес но его потенциал роста вверх в моем случае исчерпан. Вот и чешу репу чтоб и два горошка скушать и на стул сесть
...
Рейтинг: 0 / 0
акка или кафка?
    #39978520
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С учетом, что автору нафиг не нужна транзакционность (он ее и так уже похерил), то ожидать пару десятков тысяч инсертов в секунду - нормально практически для любой БД. Разумеется blob'ы и записи >килобайта в расчет не берем )))
...
Рейтинг: 0 / 0
акка или кафка?
    #39978521
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergunka
SpringMan
пропущено...

А подробности про 250000 в секунду можно?


Кафка свободно держит, правда туда бабла немеряно было влито. Кластер стоял на сорока серверах.

Ну вот я могу поверить про кластер кафки или какой-нить касандры, которые держат 250000 в секунду. Вот с ораклом уже верится сложнее. В tpc бенчмарках видел цифры этих порядков. Но как я понимаю, там разговор про такое количество запросов в минуту и на серверах с 100+ ядер. Судя по 600 запросов в секунду, у andreykaT обычный сервак в районе SSD + 16 ядер
...
Рейтинг: 0 / 0
акка или кафка?
    #39978522
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.s. это, разумеется, если делать без всяких кафок, акк и прочих ненужных извращений
...
Рейтинг: 0 / 0
акка или кафка?
    #39978523
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT, я говорю сейчас своё ИМХО основываясь на твоём первом эмоциональном посте
в котором нет практически ничего об архитектуре системы. Что за операции ты делаешь.
Какой % select/dml там работает? Было ли кеширование? Были ли оптимизации? Что говорят
статистики по базе? Какой самый горячий запрос?

Хочешь кафку - да бери кафку. Ты просто сделаешь другую систему с другими свойствами
где будут возможно другие требования по ACID. Более ослабленные наподобие CQRS.
Без транзакций вообще. Или основываясь на слабом предположении о eventual consistency.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978524
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

где будут возможно другие требования по ACID

Где там ACID ? Если топик стартер собирался заказчику говорить, что все хорошо, а потом ассинхронно писать в БД.
ACID даже и не пахнет.
Я уж не говорю про "данные не особо критичные, но терять их не очнеь желательно все-равно"
...
Рейтинг: 0 / 0
акка или кафка?
    #39978526
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton

Собственно чорт с ним. Мы можем найти любой другой бенчмарк транзакций в секунду
для трехзвенок где 2-3 звенья будут Java-Postgres или Java-ЛюбаяDBMS просто для сравнения.

Вот для postgres-а нашел
...
Рейтинг: 0 / 0
акка или кафка?
    #39978527
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
Sergunka
пропущено...


Кафка свободно держит, правда туда бабла немеряно было влито. Кластер стоял на сорока серверах.

Ну вот я могу поверить про кластер кафки или какой-нить касандры, которые держат 250000 в секунду. Вот с ораклом уже верится сложнее. В tpc бенчмарках видел цифры этих порядков. Но как я понимаю, там разговор про такое количество запросов в минуту и на серверах с 100+ ядер. Судя по 600 запросов в секунду, у andreykaT обычный сервак в районе SSD + 16 ядер


На самом деле кассандра столько не потянет так как сложно угадать пиковую нагрузку там может обычно в разы пик пойти. Т.е. архитектура обычно (покрайне мере у нас на платформе) буфер имплементирован на кафке и за кафкой идет кассандра.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978530
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
mayton

Собственно чорт с ним. Мы можем найти любой другой бенчмарк транзакций в секунду
для трехзвенок где 2-3 звенья будут Java-Postgres или Java-ЛюбаяDBMS просто для сравнения.

Вот для postgres-а нашел

Примерно 450 000 tpm. На графике. Это транзакций в минуту.

Значит в секунду это будет 450 000 / 60 = 7500.

Но это достаточно эксклюзивная конфигурация. Там всё подстроено для симуляции этого теста.
На реальном приложении будет помедленнее. Особенно с неидеальной сетью.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978565
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
С учетом, что автору нафиг не нужна транзакционность (он ее и так уже похерил), то ожидать пару десятков тысяч инсертов в секунду - нормально практически для любой БД. Разумеется blob'ы и записи >килобайта в расчет не берем )))

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

по поводу конфиги. у меня бд не ссд (я хз что еще оказывается не ссд бывает но так девопсы сказали) 24 ядра хз сколько оперативки.
при озвучанных выше значениях начинает просто каждый последующий инсерт вставляться все дольше и дольше и так до 5-ти минут на простой инсерт!
...
Рейтинг: 0 / 0
акка или кафка?
    #39978567
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
mayton

где будут возможно другие требования по ACID

Где там ACID ? Если топик стартер собирался заказчику говорить, что все хорошо, а потом ассинхронно писать в БД.
ACID даже и не пахнет.
Я уж не говорю про "данные не особо критичные, но терять их не очнеь желательно все-равно"

то что в кавычках - поясняю. если пропадет 1% данных - то это не будет страшно. если пропадет 50% данных - то это плохо.
асинхронно писать - потому что я не вижу особо выхода. либо вертикально скейлить бд, либо думать всякую фигню с репликами. либо переписывать код. всё.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978569
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergunka
SpringMan
пропущено...

Ну вот я могу поверить про кластер кафки или какой-нить касандры, которые держат 250000 в секунду. Вот с ораклом уже верится сложнее. В tpc бенчмарках видел цифры этих порядков. Но как я понимаю, там разговор про такое количество запросов в минуту и на серверах с 100+ ядер. Судя по 600 запросов в секунду, у andreykaT обычный сервак в районе SSD + 16 ядер


На самом деле кассандра столько не потянет так как сложно угадать пиковую нагрузку там может обычно в разы пик пойти. Т.е. архитектура обычно (покрайне мере у нас на платформе) буфер имплементирован на кафке и за кафкой идет кассандра.

ну я по-сути хочу что-то такое же.
...
Рейтинг: 0 / 0
25 сообщений из 192, страница 1 из 8
Форумы / Java [игнор отключен] [закрыт для гостей] / акка или кафка?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]