首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当控件传递给vertx.eventloop时,blockingHandler线程会发生什么情况?

当控件传递给vertx.eventloop时,blockingHandler线程会发生什么情况?
EN

Stack Overflow用户
提问于 2020-09-02 10:19:56
回答 1查看 177关注 0票数 0

我使用vert.x作为api网关,每个请求都必须经过多个处理程序示例代码片段

代码语言:javascript
复制
router.route(BASE_PATH)
                .method(HttpMethod.POST)
                .handler(LoggerHandler.create(LoggerFormat.SHORT))
                .handler(BodyHandler.create())
                .blockingHandler(this::authRouter)
                .blockingHandler(this::reqValidationRouter)
                .handler(this::downStreamRouter)
                .blockingHandler(this::responseTransformRouter)

当控件传递给blockingHandler时,事件循环线程会发生什么?他们是否继续接受更多的要求?如果是,当阻塞处理程序执行完成时会发生什么?从eventLoop切换到blockingHandler (workerPool),然后再切换到eventLoop是否会对性能产生任何影响?

处理多个处理程序的理想方法是什么?

谢谢你,妮丝·戈亚尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-02 13:02:49

当控件传递给blockingHandler时,事件循环线程会发生什么?他们是否继续接受更多的要求?

是的,事件循环将将阻塞处理程序部分卸载到员工池并处理其他事件。

如果是

,那么当阻塞处理程序执行完成时会发生什么?

结果的事件被添加到事件循环队列中。

从eventLoop切换到blockingHandler (workerPool),然后再切换到eventLoop是否有任何性能影响?

线程之间的切换不是免费的,但是这种用例的总延迟(api网关)的成本应该可以忽略不计。

--处理多个处理程序的理想方法是什么?

理想情况下,您应该避免阻止Vert.x Web处理程序中的代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63703491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档