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

Поділитися
Вставка
  • Опубліковано 28 лис 2024

КОМЕНТАРІ • 26

  • @roman_mf
    @roman_mf Рік тому +2

    Зачётный доклад, послушал с интересом. Спасибо, Антон!

  • @Panzerwatt
    @Panzerwatt 2 роки тому +8

    Материала про R2DBC уже немало, но никто не говорит о миграции. Если у нас есть жирненький сервис на классическом стеке, то как нам перейти в светлый мир реактивщины? За один коммит переписать 30к строчек кода и потом год это отлаживать?

    • @mrzoom214
      @mrzoom214 2 роки тому

      кому надо уже переписали

  • @IvanychF
    @IvanychF 3 місяці тому

    Отличный доклад, спасибо!

  • @denis_iii
    @denis_iii 2 роки тому +3

    С выходом loom в jdk19 блокирующий вызов уже не выглядит, как ругательство с т.з перфоманса.

  • @Nedlosster
    @Nedlosster 2 роки тому +3

    Интересный доклад. Было бы здорово иметь возможность посмотреть на исходники 3 тестовых систем, которые рассматривались в докладе.

  • @AlexeyPirogov
    @AlexeyPirogov Рік тому +1

    Если меряет перформанс то надо сначала создать гипотезу а потом ее проверять.
    Иначе намерять можно много чего.
    Но если даже померяли, без теории и гипотезы не понятно почему у реактившины выше задержки и лучше стабильность.
    А если я просто rate limiter перед блокирующим поставлю, графики улучшаться?
    Слишком много неизвестных.

  • @sovrinfo
    @sovrinfo 2 роки тому +2

    Спасибо за видео.Коммент в поддержку!

  • @konstantinchudinov2553
    @konstantinchudinov2553 7 місяців тому

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

  • @bananasba
    @bananasba 2 роки тому +1

    К сожалению, нет данных по производительности чисто БД, без этого не все ясно.

  • @oleksandrkovsharov8974
    @oleksandrkovsharov8974 2 роки тому +1

    Окей, когда есть легаси база R2DBC имеет смысл. Но если мы дизайним систему какой смысл юзать R2DBC который кастрированый? Типо когда нужна реактивщина + ACID? Намного проще взять NoSql типа Монги где будет нативный реактивный драйвер и не нужно будет менеджить транзакции/entity-relations которые создают кучу тяжелых объектов + это неудобно. Как по мне reactive + реляционка это странное решение.

  • @ogyct
    @ogyct 2 роки тому

    Наверное с приходом лума это перестанет быть актуальным. Кстати redhat сделали прорыв в реактивщине. Связка vertx и hibernate reactive. Зацените, кому интересно. Там работает pagination, relations и прочее.

  • @ИльяКузнецов-п5с
    @ИльяКузнецов-п5с 2 роки тому

    Спасибо за доклад, некоторых вещей не знал, хотя работаю с этой штукой чуть ли не с момента её релиза, проблемы есть, но они решаемые, во всяком случаи при применении этой штуки не надо думать про блокировки реактора

  • @vikleb9817
    @vikleb9817 2 роки тому

    Спасибо за хороший доклад!

  • @hgfyos
    @hgfyos 2 роки тому +8

    В общем и целом, всё ещё сыро. Фич мало, проблем много.

    • @rusmemes
      @rusmemes Рік тому

      вот вот, и нахрена оно в итоге нужно - непонятно, тупо хайп

    • @hgfyos
      @hgfyos Рік тому +1

      @@rusmemes зачем оно нужно, как раз понятно: дать больше перформанса за счёт асинхронного I/O

    • @rusmemes
      @rusmemes Рік тому +1

      @@hgfyos так не будет перформанса, ибо в любом случае упрешься в перформанс базы гораздо раньше чем в перформанс кода

    • @hgfyos
      @hgfyos Рік тому +2

      @@rusmemes почитайте про асинхронность и неблокирующий I/O, как это работает, чтобы голословным не быть.
      В любом случае, как бы вы не хотели, запрос к СУБД идёт через сервера бекенда, так что упереться в базу можно только в одном случае: сервер СУБД слабее сервера бекенда, что довольно редкая ситуация. А благодаря асинхронщине вы уменьшаете оверхед в виде кучи тредов, которые просто ждут СУБД, и Requests Per Second растёт кратно

    • @alexshpaq
      @alexshpaq 10 місяців тому

      ​@@rusmemes вот вот, уже давным давно придумали circuit-breaker, если внешний провайдер данных, будь то БД или сторонний сервис начинает торомозить, нет никакого смысла засыпать его запросами и подкидывать ему работы, он от этого быстрее работать не станет. Есть целый ряд способов решить эту ситуацию, не переходя в асинхронщину...

  • @ДмитрийД-к3п2п
    @ДмитрийД-к3п2п 2 роки тому +21

    Каждый разработчик должен попробовать функциональное программирование, реактивное программирование и... забыть его.

    • @CyanideBtm
      @CyanideBtm 2 роки тому

      только в случае если не осилил

    • @hgfyos
      @hgfyos 2 роки тому +1

      @@CyanideBtmи вы не программируете на хаскеле

  • @prng792
    @prng792 2 роки тому +1

    Исходники хоть смотрели драйвера? Набор костылей. Да и сама постгря не создана для реактивного подключения.

  • @rusmemes
    @rusmemes Рік тому +2

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