Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Реактивные веб-фреймворки Java

Реактивные веб-фреймворки Java

Антон Ситников
Главный архитектор ПО, Exactpro

«Play, Vert.x, WebFlux, Quarkus. Если вас привлекли эти названия, значит вы думаете над написанием высокопроизводительного web-сервиса. Цель моего доклада — помочь с выбором правильной технологии».

27 мая 2021
Online Dev Meetup
---
Подписывайтесь на Exactpro в социальных сетях:

LinkedIn https://www.linkedin.com/company/exactpro-systems-llc
Twitter https://twitter.com/exactpro
Facebook https://www.facebook.com/exactpro/
Instagram https://www.instagram.com/exactpro/

Подписывайтесь на YouTube канал Exactpro http://www.youtube.com/c/ExactproVlog

5206c19df417b8876825b5561344c1a0?s=128

Exactpro
PRO

May 27, 2021
Tweet

Transcript

  1. Build Software to Test Software 1 def checkSingle(): try: get_config(path)

    if(get_setting(path, 'SingleMod', 'prior_col_class') and get_setting(path, 'SingleMod', 'ttr_col_class') and get_setting(path, 'SingleMod', 'fix_col_class') and get_setting(path, 'SingleMod', 'rej_col_class') and get_setting(path, 'SingleMod', 'columns') and get_setting(path, 'SingleMod', 'binary_col_class')): return True else: False except Exception: return False def sortIntervals(list): print(list) list.sort() print(list.sort()) newList = list.sort() return [str(newList[0])+'-'+str(newList[1]), str(newList[1])+'-'+str(newList[2]), str(newList[2])+'-'+str(newList[3]), '>'+str(newList[3])] 27 MAY 2021 | ONLINE MEETUP Reactive Java Web Frameworks
  2. Build Software to Test Software 2 Анатомия web приложения Данные

    Web приложение HTTP JDBC
  3. Build Software to Test Software 3 Обработка запроса Запрос обработка

    Запрос данных обработка Ответ Запрос обработка Запрос данных обработка Ответ 1 2
  4. Build Software to Test Software 4 Обработка запроса Очередь на

    обработку обработка Запрос данных обработка обработка Запрос данных обработка
  5. Build Software to Test Software 5 Асинхронная обработка Запрос обработка

    Запрос данных обработка Ответ Запрос данных
  6. Build Software to Test Software 6 Java reactive streams frameworks

    • rxJava • Project reactor • Mutiny • Akka
  7. Build Software to Test Software 7 ORM • Hibernate

  8. Build Software to Test Software 8 ORM • Hibernate •

    Hibernate Reactive Vert.x SQL Client (PostgreSQL, MySQL, MariaDB, Db2, and CockroachDB)
  9. Build Software to Test Software 9 Play Framework • Выпущен

    в 2009 • Основан на Akka • JDBC для традиционных баз данных • Асинхронные коннекторы в Alpakka • Поддержка сессий, server side rendering
  10. Build Software to Test Software 10 vert.x • Разработка началась

    в 2011 • Предоставляет rxJava2 API • Встроенная поддержка традиционных баз (Postgres, MySql, Db2, MS SQL) • Kafka, AMQP и т.п.
  11. Build Software to Test Software 11 Spring WebFlux • Выпущен

    в 2017 • Основан на Project reactor • Роутинг основанный на аннотациях • Поддержки традиционных баз нет • Заточен под асинхронных поставщиков данных (Kafka и Kafka)
  12. Build Software to Test Software 12 Quarkus • Выпущен в

    2019 • Основан на vert.x • Использует Mutiny • Заточен под Kubernetes и микросевисы
  13. Build Software to Test Software 13 def sortIntervals(list): print(list) list.sort()

    print(list.sort()) newList = list.sort() return [str(newList[0])+'-'+str(newList[1]), str(newList[1])+'-'+str(newList[2]), str(newList[2])+'-'+str(newList[3]), '>'+str(newList[3])] def update_setting(path, section, setting, value): config = get_config(path) config.set(section, setting, value) with open(path, "w") as config_file: config.write(config_file) def checkSingle(): try: get_config(path) if(get_setting(path, 'SingleMod', 'prior_col_class') and get_setting(path, 'SingleMod', 'ttr_col_class') and get_setting(path, 'SingleMod', 'fix_col_class') and get_setting(path, 'SingleMod', 'rej_col_class') and get_setting(path, 'SingleMod', 'columns') and get_setting(path, 'SingleMod', 'binary_col_class')): return True else: False except Exception: return False Спасибо!