Почему vertx обрабатывает трафик лучше, чем Spring Webflux? ⇐ JAVA
-
Anonymous
Почему vertx обрабатывает трафик лучше, чем Spring Webflux?
Пример кода Vertx:
workerExecutor = vertx.createSharedWorkerExecutor("test-worker-pool", 200, 30, TimeUnit.SECONDS); router.get("/test").handler(context ->{ workerExecutor.executeBlocking(будущее -> { пытаться { Thread.sleep(3); } catch (InterruptedException e) { выдать новое RuntimeException(e); } Future.complete("Успешно"); }, false, asyncResult -> { если (asyncResult.succeeded()) { sendSuccess(context.response()); } еще { sendError(asyncResult.cause().getMessage(), context.response()); } }); }); Пример кода Spring Webflux
частный планировщик Scheduler = Schedulers.newBoundedElastic(200, 10, "MyThreadGroup"); @GetMapping() общественный Mono getEmployeeById() { return Mono.fromCallable(this::handleFile).subscribeOn(планировщик); } частная строка handleFile(){ пытаться { Thread.sleep(3); вернуть «Успешно»; } catch (InterruptedException e) { выдать новое RuntimeException(e); } } Результат нагрузочного теста с использованием jmeter за минуту:
Верткс:
Общий запрос: 726320 запросов/мин. Пропускная способность: 11194 запросов/с
Весенний вебфлюкс:
Общий запрос: 584532 запросов/мин. Пропускная способность: 9564 запросов/с
Почему vertx обрабатывает трафик больше, чем Spring Webflux?
Пример кода Vertx:
workerExecutor = vertx.createSharedWorkerExecutor("test-worker-pool", 200, 30, TimeUnit.SECONDS); router.get("/test").handler(context ->{ workerExecutor.executeBlocking(будущее -> { пытаться { Thread.sleep(3); } catch (InterruptedException e) { выдать новое RuntimeException(e); } Future.complete("Успешно"); }, false, asyncResult -> { если (asyncResult.succeeded()) { sendSuccess(context.response()); } еще { sendError(asyncResult.cause().getMessage(), context.response()); } }); }); Пример кода Spring Webflux
частный планировщик Scheduler = Schedulers.newBoundedElastic(200, 10, "MyThreadGroup"); @GetMapping() общественный Mono getEmployeeById() { return Mono.fromCallable(this::handleFile).subscribeOn(планировщик); } частная строка handleFile(){ пытаться { Thread.sleep(3); вернуть «Успешно»; } catch (InterruptedException e) { выдать новое RuntimeException(e); } } Результат нагрузочного теста с использованием jmeter за минуту:
Верткс:
Общий запрос: 726320 запросов/мин. Пропускная способность: 11194 запросов/с
Весенний вебфлюкс:
Общий запрос: 584532 запросов/мин. Пропускная способность: 9564 запросов/с
Почему vertx обрабатывает трафик больше, чем Spring Webflux?
Мобильная версия