前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vertx架构

vertx架构

作者头像
spilledyear
发布2021-09-07 17:00:13
1K0
发布2021-09-07 17:00:13
举报
文章被收录于专栏:小白鼠小白鼠

对于部署标准模式verticle,vertx的架构如下:

standard verticle架构.png

对于部署worker模式verticle,vertx的架构如下:

worker verticle架构.png

  • vertx的Acceptor EventloopGroup只有1个Acceptor Eventloop,即通过1个线程监听所有客户端的连接,连接建立后交给VertxEventLoopGroup处理。
  • vertx可以把server(HttpServer,TcpServer,UdpServer)部署在多个verticle中,每个verticle共享这个server,server的连接监听在Acceptor Eventloop中,但读写事件的触发和处理都在VertxEventLoopGroup的eventloop中执行。
  • 每部署1个verticle,都会为该verticle绑定1个event loop,这个eventloop是从VertxEventLoopGroup中按顺序取出的1个,该verticle中的io读写都在此eventloop中执行。
  • 每部署1个verticle,都会为该verticle创建1个执行context(每个context都对应1个线程或执行器),传入的业务request handler都在此context对应的线程或执行器中执行。
  • 对于标准模式的verticle,context对应的线程就是该verticle绑定的event loop的线程;对于worker模式的verticle,context对应的是worker线程池的执行器。因此,对于标准模式verticle,编解码handler、request handler都在绑定的eventloop中执行,但excuteBlocking方法会在worker线程池执行;对于worker模式verticle,编解码handler会在绑定的eventloop中执行,但request handler会在worker线程池的顺序执行器中执行。(注:request handler就是创建server时设置的业务处理handler)
  • 当部署的verticle数量小于VertxEventLoopGroup的eventloop数量时,会造成部分event loop完全空闲;当部署的verticle数量大于VertxEventLoopGroup的eventloop数量时,多个verticle可能绑定同一个eventloop。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-12-5 0,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档