Антон Котов - Почему мы решили переходить на R2DBC и чем это закончилось

  Рет қаралды 9,617

JPoint, Joker и JUG ru

JPoint, Joker и JUG ru

2 жыл бұрын

Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
Подробности и билеты: jrg.su/Ypf1HW
- -
Если Spring WebFlux, то Spring Data R2DBC. Часто выбор совсем нового способа реактивного взаимодействия с реляционными базами данных строится именно по такой логике. Что мы покупаем и чем платим? Какие трудности ждать, если годами писали на JDBC, а теперь грядет переезд в новую реактивную реальность? Когда это оправдано? Обо всем этом Антон расскажет в своем докладе.
Ссылка на презентацию: squidex.jugru.team/api/assets...

Пікірлер: 24
@roman_mf
@roman_mf Жыл бұрын
Зачётный доклад, послушал с интересом. Спасибо, Антон!
@sovrinfo
@sovrinfo 2 жыл бұрын
Спасибо за видео.Коммент в поддержку!
@Nedlosster
@Nedlosster 2 жыл бұрын
Интересный доклад. Было бы здорово иметь возможность посмотреть на исходники 3 тестовых систем, которые рассматривались в докладе.
@denis_iii
@denis_iii 2 жыл бұрын
С выходом loom в jdk19 блокирующий вызов уже не выглядит, как ругательство с т.з перфоманса.
@vikleb9817
@vikleb9817 2 жыл бұрын
Спасибо за хороший доклад!
@konstantinchudinov2553
@konstantinchudinov2553 2 ай бұрын
Мне кажется, применимо другое правило - если ты используешь реляционку, то скорее всего тебе реактивщина не нужна, ибо такого-кол-ва одновременных запросов у тебя нет. А если есть, то реляционка вряд ли это потянет
@Panzerwatt
@Panzerwatt 2 жыл бұрын
Материала про R2DBC уже немало, но никто не говорит о миграции. Если у нас есть жирненький сервис на классическом стеке, то как нам перейти в светлый мир реактивщины? За один коммит переписать 30к строчек кода и потом год это отлаживать?
@mrzoom214
@mrzoom214 Жыл бұрын
кому надо уже переписали
@bananasba
@bananasba 2 жыл бұрын
К сожалению, нет данных по производительности чисто БД, без этого не все ясно.
@AlexeyPirogov
@AlexeyPirogov Жыл бұрын
Если меряет перформанс то надо сначала создать гипотезу а потом ее проверять. Иначе намерять можно много чего. Но если даже померяли, без теории и гипотезы не понятно почему у реактившины выше задержки и лучше стабильность. А если я просто rate limiter перед блокирующим поставлю, графики улучшаться? Слишком много неизвестных.
@user-mm5ht3zj3s
@user-mm5ht3zj3s 2 жыл бұрын
Спасибо за доклад, некоторых вещей не знал, хотя работаю с этой штукой чуть ли не с момента её релиза, проблемы есть, но они решаемые, во всяком случаи при применении этой штуки не надо думать про блокировки реактора
@oleksandrkovsharov8974
@oleksandrkovsharov8974 Жыл бұрын
Окей, когда есть легаси база R2DBC имеет смысл. Но если мы дизайним систему какой смысл юзать R2DBC который кастрированый? Типо когда нужна реактивщина + ACID? Намного проще взять NoSql типа Монги где будет нативный реактивный драйвер и не нужно будет менеджить транзакции/entity-relations которые создают кучу тяжелых объектов + это неудобно. Как по мне reactive + реляционка это странное решение.
@ogyct
@ogyct Жыл бұрын
Наверное с приходом лума это перестанет быть актуальным. Кстати redhat сделали прорыв в реактивщине. Связка vertx и hibernate reactive. Зацените, кому интересно. Там работает pagination, relations и прочее.
@hgfyos
@hgfyos 2 жыл бұрын
В общем и целом, всё ещё сыро. Фич мало, проблем много.
@rusmemes
@rusmemes Жыл бұрын
вот вот, и нахрена оно в итоге нужно - непонятно, тупо хайп
@hgfyos
@hgfyos Жыл бұрын
@@rusmemes зачем оно нужно, как раз понятно: дать больше перформанса за счёт асинхронного I/O
@rusmemes
@rusmemes Жыл бұрын
@@hgfyos так не будет перформанса, ибо в любом случае упрешься в перформанс базы гораздо раньше чем в перформанс кода
@hgfyos
@hgfyos Жыл бұрын
@@rusmemes почитайте про асинхронность и неблокирующий I/O, как это работает, чтобы голословным не быть. В любом случае, как бы вы не хотели, запрос к СУБД идёт через сервера бекенда, так что упереться в базу можно только в одном случае: сервер СУБД слабее сервера бекенда, что довольно редкая ситуация. А благодаря асинхронщине вы уменьшаете оверхед в виде кучи тредов, которые просто ждут СУБД, и Requests Per Second растёт кратно
@alexshpaq
@alexshpaq 5 ай бұрын
​@@rusmemes вот вот, уже давным давно придумали circuit-breaker, если внешний провайдер данных, будь то БД или сторонний сервис начинает торомозить, нет никакого смысла засыпать его запросами и подкидывать ему работы, он от этого быстрее работать не станет. Есть целый ряд способов решить эту ситуацию, не переходя в асинхронщину...
@user-fq3nn3ql3g
@user-fq3nn3ql3g 2 жыл бұрын
Каждый разработчик должен попробовать функциональное программирование, реактивное программирование и... забыть его.
@CyanideBtm
@CyanideBtm 2 жыл бұрын
только в случае если не осилил
@hgfyos
@hgfyos 2 жыл бұрын
@@CyanideBtmи вы не программируете на хаскеле
@prng792
@prng792 2 жыл бұрын
Исходники хоть смотрели драйвера? Набор костылей. Да и сама постгря не создана для реактивного подключения.
@rusmemes
@rusmemes Жыл бұрын
не в восторге от этого дела, как-то слишком много сложностей спрятано под капотом, слишком много граблей на которые можно неожиданно наступить, отказоустойчивость сервисов можно огранизовать просто на уровне горизонтально скалируемой архитектуры, и вовсе необязательно настолько несвежие либы тащить на прод для этого
когда повзрослела // EVA mash
00:40
EVA mash
Рет қаралды 2,4 МЛН
СНЕЖКИ ЛЕТОМ?? #shorts
00:30
Паша Осадчий
Рет қаралды 8 МЛН
Зачем нужна база данных Redis и где она используется
13:24
Дмитрий Ченгаев. Веб-разработка.
Рет қаралды 18 М.
Дофаминовая яма. Как мы губим свой мозг
27:24
Андрей Курпатов
Рет қаралды 4,2 МЛН
Никита Летов - Используем @Transactional like a Pro
1:16:31
JPoint, Joker и JUG ru
Рет қаралды 51 М.
Что такое JDBC? Что такое ORM, Hibernate & JPA?
12:59
Sergey Nemchinskiy
Рет қаралды 72 М.
Asus  VivoBook Винда за 8 часов!
1:00
Sergey Delaisy
Рет қаралды 1,1 МЛН
SSD с кулером и скоростью 1 ГБ/с
0:47
Rozetked
Рет қаралды 565 М.
#miniphone
0:16
Miniphone
Рет қаралды 3,6 МЛН